Naked 函式
Microsoft 專有的
naked儲存類別屬性是 Microsoft 專屬延伸到 c 的語言。 以宣告的函式的naked儲存類別屬性,編譯器會產生沒有初構和終解程式碼的程式碼。 您可以使用這項功能來撰寫您自己使用內嵌組譯程式碼的初構/終解程式碼順序。 Naked 的函式是在撰寫虛擬裝置驅動程式特別有用。
因為naked屬性才有意義的函式定義,而且不是型別修飾詞,naked 函式使用的延伸的屬性語法中,所述儲存類別的擴充屬性。
下列範例會定義的函式naked屬性:
__declspec( naked ) int func( formal_parameters )
{
/* Function body */
}
或者,或者:
#define Naked __declspec( naked )
Naked int func( formal_parameters )
{
/* Function body */
}
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 特定