共用方式為


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 特定

請參閱

參考

C 函式定義