C の拡張ストレージ クラス属性

Microsoft 固有の仕様

ストレージ クラス属性のその他の最新情報については、__declspec (C++ リファレンス) に関するページを参照してください。

拡張属性構文は、Microsoft 固有の C 言語拡張機能を簡略化し、標準化します。 拡張属性構文を使用するストレージ クラス属性には、threadnakeddllimportdllexport があります。

拡張属性構文でストレージ クラス情報を指定する場合、__declspec キーワードを使用します。これでは、特定の型のインスタンスを Microsoft 固有のストレージ クラス属性 (threadnakeddllimport、または dllexport) と共に格納することを指定します。 ストレージ クラス修飾子の例には、他に static および extern キーワードがあります。 ただし、これらのキーワードは ISO C 標準の一部であり、拡張属性構文では扱われません。

構文

storage-class-specifier:
__declspec (extended-decl-modifier-seq) /* Microsoft 固有の仕様 */

extended-decl-modifier-seq: /* Microsoft 固有の仕様 */
extended-decl-modifieropt
extended-decl-modifier-seq extended-decl-modifier

extended-decl-modifier: /* Microsoft 固有の仕様 */
thread
naked
dllimport
dllexport

空白は、宣言修飾子を区切ります。 extended-decl-modifier-seq は空白にできます。この場合、 __declspec による影響はありません。

threadnakeddllimportdllexport ストレージ クラス属性は、適用先のデータまたは関数の宣言のプロパテでしかありません。 関数自体の型属性は再定義しません。 thread 属性はデータにのみ影響を与えます。 naked 属性は関数にのみ影響を与えます。 dllimport および dllexport 属性は関数とデータに影響を与えます。

Microsoft 固有の仕様はここまで

関連項目

宣言と型