C の拡張ストレージ クラス属性
Microsoft 固有の仕様
ストレージ クラス属性のその他の最新情報については、__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
opt
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 固有の仕様はここまで