5

int &aDelphi でどのように記述しますか?

たとえば、C++ では ですがvoid ABC(int &a, int &b)、Delphi での記述方法がわかりません。

4

4 に答える 4

7

これは C++ の参照パラメーターです。var パラメータに対応する Delphi では。

procedure ABC(var a: Integer; var b: Integer);

ドキュメントには次のように記載されています。

ほとんどのパラメーターは、値パラメーター (デフォルト) または変数 (var) パラメーターのいずれかです。値パラメーターは値によって渡されますが、変数パラメーターは参照によって渡されます。

于 2013-01-24T13:55:12.103 に答える
4
void ABC(int &a, int &b)

になるだろう

procedure ABC(var a: Integer; var b: Integer);

このvarキーワードは、値ではなく参照によって値を渡すことを示します。

于 2013-01-24T13:55:44.827 に答える
1

他の人が指摘したように、同等の Delphi 宣言はprocedure ABC(var a, b: Integer);、 Delphi コードが呼び出すことができる外部の C/C++ 実装関数を宣言することを意図していない限り、C/C++ 関数の呼び出し規則を考慮に入れる必要がある場合を除きます。上記のように、呼び出し規約を指定しない Delphi 関数宣言は、Delphi のregister呼び出し規約(__fastcallC++Builder で知られている)を使用します。表示する C/C++ 宣言では呼び出し規約が指定されていないため、C/C++ コンパイラのデフォルトの呼び出し規約が使用されます。これは、ほとんどのセットアップでは です__cdecl。この場合、同等の Delphi 宣言は次のようになります。procedure ABC(var a, b: Integer); cdecl;

于 2013-01-24T21:28:02.323 に答える
1

またprocedure ABC(out a: Integer; out b: Integer); 、厳密には var-parameters ではありませんが、それらは参照によって渡され、値を渡すことを意図しています。移植するコードのセマンティクスに応じて、ケースバイケースでvarまたはを選択できます。out

于 2013-01-24T15:34:34.613 に答える