Microsoft 固有の仕様
ストレージ クラス属性の詳細 up-to-date 情報については、 __declspec (C++ リファレンス) を参照してください。
拡張属性の構文により、Microsoft 固有の C 言語の拡張機能が簡略化され、標準化されます。 拡張属性構文を使用するストレージ クラス属性には、 thread、 naked、 dllimport、および dllexportが含まれます。
ストレージ クラス情報を指定するための拡張属性構文では、 __declspec キーワードを使用します。これは、特定の型のインスタンスを Microsoft 固有のストレージ クラス属性 (thread、 naked、 dllimport、または dllexport) と共に格納することを指定します。 その他のストレージ クラス修飾子の例としては、static キーワードや extern キーワードなどがあります。 ただし、これらのキーワードは ISO C 標準の一部であり、拡張属性構文の対象ではありません。
構文
storage-class-specifier:
__declspec (
extended-decl-modifier-seq
) /* Microsoft 固有の */
extended-decl-modifier-seq: /* Microsoft 固有の */
extended-decl-modifier
選ぶ
extended-decl-modifier-seq
extended-decl-modifier
extended-decl-modifier: /* Microsoft 固有の */
thread
naked
dllimport
dllexport
空白は宣言修飾子を区切ります。
extended-decl-modifier-seqは空にすることができます。この場合、__declspecは無効です。
thread、naked、dllimport、およびdllexportストレージ クラスの属性は、それらが適用されるデータまたは関数の宣言のみのプロパティです。 関数自体の型属性は再定義されません。
thread属性はデータにのみ影響します。
naked属性は関数にのみ影響します。
dllimport属性とdllexport属性は、関数とデータに影響します。
Microsoft 固有の仕様はここまで