noreturn

Microsoft 專有的

這__declspec屬性是告訴編譯器函式不會傳回。因此,編譯器便會知道,呼叫之後的程式碼 __declspec(noreturn) 函式是不可能執行到。

如果編譯器發現不傳回值的控制項路徑的函式,就會產生警告 (C4715) 或錯誤訊息 (C2202)。如果控制項路徑無法到達的函式,不會傳回受限於,您可以使用 __declspec(noreturn) 若要避免此警告或錯誤。

注意事項注意事項

新增 __declspec(noreturn) 被期待傳回的函式可能會導致未定義的行為。

範例

在下列範例中, 其他子句不包含傳回陳述式。宣告fatal與 __declspec(noreturn) 會避免錯誤或警告訊息。

// noreturn2.cpp
__declspec(noreturn) extern void fatal () {}

int main() {
   if(1)
     return 1;
   else if(0)
     return 0;
   else
     fatal();
}

請參閱

參考

__declspec

C + + 關鍵字