__declspec(naked)
カテゴリ
構文
__declspec( naked ) declarator
naked 引数を指定すると、プロローグ コードおよびエピローグ コードが生成されなくなります。 ただし、__declspec(naked) を使用すると、通常のスタック フレームがセットアップされないので注意が必要です。 __declspec(naked) を指定した関数は、通常は保持されるレジスタ値を保持しません。 関数の呼び出し側が期待するすべての規約を守ることはプログラマの責任です。
この機能を使用すると、インライン アセンブラ コードによって独自のプロローグ コードおよびエピローグ コードを記述することができます。 naked 関数は、仮想デバイス ドライバを記述するときに特に便利です。
naked 属性は、関数の定義だけに適用されるもので、型修飾子ではありません。
例
次のコード例では、naked 属性を持つ関数を定義しています。
// Example of the naked attribute
__declspec( naked ) int func( formal_parameters )
{
// Function body
}