naked (C++)
Microsoft 專有的
以宣告的函式的naked屬性,編譯器會產生沒有初構和終解程式碼的程式碼。 您可以使用這項功能來撰寫您自己使用內嵌組譯程式碼的初構/終解程式碼順序。 Naked 的函式是在撰寫虛擬裝置驅動程式特別有用。 請注意, naked屬性是只能在 x86 上有效,而且並沒有出現在x64或Itanium。
__declspec(naked) declarator
備註
因為naked屬性才有意義的函式定義,並不是型別修飾詞時,naked 函式必須使用擴充的屬性的語法和 __declspec 關鍵字。
編譯器無法產生 naked 搭配,一起使用的函式內嵌函式,即使該函式也會以標記 __forceinline 關鍵字。
如果,編譯器會發出錯誤naked屬性會套用至非成員方法的定義以外的任何項目。
範例
這段程式碼定義的函式naked屬性:
__declspec( naked ) int func( formal_parameters ) {}
或者,或者:
#define Naked __declspec( naked )
Naked int func( formal_parameters ) {}
naked屬性會影響的函式的初構和終解序列的編譯器的程式碼產生的本質。 它不會影響呼叫這類函式所產生的程式碼。 因此, naked屬性不是函式之型別的一部分,而且不能有函式指標, naked屬性。 此外, naked屬性無法套用到資料定義。 比方說,這個程式碼範例會產生錯誤:
__declspec( naked ) int i; // Error--naked attribute not
// permitted on data declarations.
naked屬性是只與相關的函式定義,而且不能在函式的原型指定。 比方說,這項宣告會產生編譯器錯誤:
__declspec( naked ) int func(); // Error--naked attribute not
// permitted on function declarations
結束 Microsoft 特定