関数修飾子

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

宣言構文:インデックス への移動

このセクションでは、CodeGear C++ コンパイラで使用できる関数修飾子について説明します。

__declspec(dllexport)__declspec(dllimport) の各修飾子を使用して関数を修飾することができます。

32 ビット プログラムでは、修飾子のキーワードをクラス宣言、関数宣言、および変数宣言に付けることができます。

__declspec(dllexport) 修飾子を付けると、関数は Windows からエクスポート可能になります。__declspec(dllimport) 修飾子を付けると、関数は Windows プログラムで使用可能になります。これらのキーワードは、実行可能ファイル(スマート コールバックを使用しない場合)または DLL で使用します。

__fastcall 修飾子を付けて宣言された関数は、同じ関数に __fastcall を付けない場合とは異なる名前になります。__fastcall 関数名の先頭には、コンパイラによってアットマーク(@)が付けられます。このプレフィクスは、マングル(変換)されていない C 関数名にも、マングルされている C++ 関数名にも付いています。

C++Builder の修飾子:

修飾子 対象 説明

const

変数

オブジェクトが変更されないようにします。

volatile

変数

レジスタの割り当てとある種の最適化が行われないようにします。オブジェクトが評価中に外部から変更される可能性があることをコンパイラに警告します。

__cdecl

関数

C の引数受け渡し規約に従います。リンク時の名前が変わります。これがデフォルトの設定です。

__cdecl

変数

グローバル識別子の大文字/小文字を区別し、C では名前の先頭に下線記号(_)を付けます。これがデフォルトの設定です。

__pascal

関数

Pascal の引数受け渡し規約に従います。リンク時の名前が変わります。

__pascal

変数

グローバル識別子の大文字/小文字を区別せず、C では名前の先頭に下線記号(_)を付けません。

__import

関数またはクラス

インポートする関数またはクラスをコンパイラに指示します。

__export

関数またはクラス

エクスポートする関数またはクラスをコンパイラに指示します。

__declspec(dllimport)

関数またはクラス

インポートする関数またはクラスをコンパイラに指示します。この方法を推奨します。

__declspec(dllexport)

関数またはクラス

エクスポートする関数またはクラスをコンパイラに指示します。この方法を推奨します。

__fastcall

関数

レジスタによる引数受け渡し規約に従います。リンク時の名前が変わります。

__stdcall

関数

標準の Win32 引数受け渡し規約に従います。

C++ では、constvolatile が拡張され、クラスとメンバ関数にもこれらを指定できるようになっています。

関連項目