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();
}