_fastcall、__fastcall

提供: RAD Studio
移動先: 案内検索

キーワード(アルファベット順):インデックス への移動


カテゴリ

修飾子 (C++), 拡張キーワード

構文

return-value _fastcall function-name(parm-list)
return-value __fastcall function-name(parm-list)

説明

__fastcall 修飾子を使用すると、パラメータをレジスタで渡す関数を宣言できます。 最初の 3 つのパラメータは、レジスタに収まれば、(左から右に)EAX、EDX、ECX で渡されます。 パラメータが浮動小数点型または構造体型の場合、これらのレジスタは使用されません。

メモ: VCL クラスとフォーム クラスのすべてのメンバ関数は、__fastcall 規約に従う必要があります。
メモ: __fastcall 形式(2 つの下線のついた)は、Clang ベースの C++ コンパイラでサポートされている唯一の形式です。

コンパイラはこの呼び出し規約を、_cdecl や _pascal と同様に、新しい言語指定子とみなします。

_cdecl_pascal を使って宣言された関数は、スタックを使用してパラメータを渡すため、_fastcall 修飾子を持つことができません。 同様に、__fastcall 修飾子は、_export と一緒には使用できません。

コンパイラは、__fastcall 関数名の先頭にアットマーク(@)を付けます。 このプレフィクスは、マングル化されていない C 関数名にも、マングル化されている C++ 関数名にも適用されます。

Microsoft C++ 形式の __fastcall 実装については、「__msfastcall」および「__msreturn」を参照してください。

メモ: __fastcall 修飾子は名前マングルの対象になります。 BCC32 -VC オプション の説明を参照してください。

関連項目