__declspec
読み:アンダースコア-デクルスペック
外語:__declspec
Microsoft Visual C++で実装されている、Microsoft独自の拡張属性を定義する構文。互換性のためBorland C++ Builderなどでも対応している。
種類
Visual Studio 2010時点で、次のものがある。
- __declspec(align( # ))
- __declspec(allocate("segname"))
- __declspec(appdomain)
- __declspec(deprecated)
- __declspec(dllimport)
- __declspec(dllexport)
- __declspec(jitintrinsic)
- __declspec(naked)
- __declspec(noalias)
- __declspec(noinline)
- __declspec(noreturn)
- __declspec(nothrow)
- __declspec(novtable)
- __declspec(process)
- __declspec(property({get=get_func_name|,put=put_func_name}))
- __declspec(restrict)
- __declspec(safebuffers)
- __declspec(selectany)
- __declspec(thread)
- __declspec(uuid("ComObjectGUID"))
なお、Visual Studio 2005時点では、safebuffersが無かった。
特徴
- __declspec(dllimport)
- __declspec(dllexport)
- DLLを作るときに使う。
- __declspec(naked)
- 関数定義で使用し、関数全体をアセンブリ言語で記述することを指示する。
- __declspec(thread)
- 例えば、__declspec(thread) int val; で、int valをスレッドローカル変数として宣言する
再検索