は、私は次のような方法の一つが定義されているCソースファイルがありますか?私の知っている限りでは、「無効」は何も返されません。それで、法的声明ですか?無効と戻り値の型
無効と戻り値の型
答えて
QDECLの定義を確認しました。それは、
#define QDECL __cdecl
は、今すぐあなたの宣言はなりまだ voidを返す関数である
void __cdecl prettyPrintf(int level)
です。
実際、QDECL
は、関数の戻り値の型を変更せずに(理論的に)他の形式をとることができます。呼び出し[それが展開するだろう - それは簡単に今、あなたの関数のプロトタイプがvoid
返す関数
QDECL
は、呼び出し規約を定義します。これは、ヘッダファイルの1つに定義されたマクロで、__cdecl
または__stdcall
のように評価されます。
これは、関数の戻り値の型に関係しません。この機能はまだvoid
の機能です。コメントで
あなたの状態:ここ
私の関心は、JavaへのIポートが上記のコードならば、私はこれの世話をする必要がないということですか?
いいえ。これは純粋に異なるネイティブのコードライブラリ間のインタフェースとしての問題です。コードがJavaになったら、単に呼び出し規約を無視できます。
実行時にどのような利点がありますか?パフォーマンスの向上は?またはそれは専門家のコーディングスタイルですか? – UVM
@UNNIパフォーマンスや利点、コーディングスタイルの問題ではありません。あるライブラリと別のライブラリの間でバイナリコントラクトを定義する必要があります。これは共有ライブラリにエクスポートされる関数です。したがって、すべての当事者は、関数を呼び出すときに同じ規則を使用する必要があります。呼び出し規約はそれらの規則をコード化します。これを読んでください:http://en.wikipedia.org/wiki/Calling_convention –
QDECL
はおそらくcalling conventionのヒント(たとえば__cdecl
または__stdcall
)に解決されるプリプロセッサマクロです。これは、コールスタックにパラメータをプッシュ/クリーンアップする方法を定義しますが、関数の戻り値の型は変更しません。クライアントとは異なるデフォルトの呼び出し規約を使用するライブラリを使用する場合、主に相互運用性のために使用されます。
- 1. 戻り値が無効
- 2. sbt console/Scalaの戻り値の型を無効にするREPL
- 3. Javaエラー - 「無効なメソッド宣言、戻り値の型が必要」
- 4. Apex - 無効な戻り値の型マップ<String、EmbeddedClass>
- 5. 無記号は、戻り値の型「MKOverlayRenderer」
- 6. VS2015 C++コルーチン:promise.get_return_object()戻り値の型とコルーチン戻り値の型
- 7. LLVM main()の無効な戻り値タイプ
- 8. Linqと戻り値の型
- 9. AsyncTaskの戻り値の型onPostExecuteメソッドは無効ではありませんか?
- 10. Swiftジェネリックパラメータと戻り値型
- 11. decltype(オート) - 戻り値の型の推論戻り値の型
- 12. 戻り値の型
- 13. 戻り値の型
- 14. 戻り値の型=
- 15. 戻り値の型
- 16. デフォルトエンティティを無効にするWCFデータサービスで戻り値の型を追加する
- 17. エラー:無効なメソッド宣言。戻り値の型が必要です(行31)
- 18. 宿題:エラー:無効なメソッド宣言。戻り値の型が必要です
- 19. 無効に戻りvimの
- 20. Python:ユーザーの入力と無効戻り値
- 21. 戻り値型インターフェイス
- 22. 戻り値の型(Java)の
- 23. Scalaの戻り値の型
- 24. タスクの戻り値の型
- 25. WEBAPIの戻り値の型
- 26. JavascriptとMVC戻り値の型
- 27. インタフェースと共変戻り値の型
- 28. Javaジェネリックと戻り値の型
- 29. C++ Iterators戻り値の型
- 30. C:ether_aton戻り値の型
GoはQDECLの定義を見つけることはまだある
ある
されている可能性が大会](http://en.wikipedia.org/wiki/Calling_convention)。戻り値の型とは何も関係ありません。 –
私はそれについて聞いたことがありませんが、それは__cdeclのエイリアスのようです。 –
私の心配はここにあります。上記のコードをJavaに移植すると、これを処理する必要がありますか? – UVM