?
このドキュメントでは、 php中國語ネットマニュアル リリース
指定該函數(shù)不返回到其調(diào)用點。
_Noreturn function_declaration | (自C11以來) |
---|
所述_Noreturn
關(guān)鍵字出現(xiàn)在函數(shù)聲明和指定該函數(shù)不通過執(zhí)行返回語句或到達功能體的最后返回(它可以通過執(zhí)行返回longjmp
)。如果聲明的函數(shù)_Noreturn
返回,則行為是未定義的。如果可以檢測到,則建議使用編譯器診斷。
該_Noreturn
說明符可能會出現(xiàn)比相同功能的聲明再次,行為,如果它出現(xiàn)一次相同。
該說明符通常用于noreturn
標題中提供的便利宏stdnoreturn.h
。
_Noreturn
.
以下功能noreturn
位于標準庫中:
abort()
exit()
_Exit()
quick_exit()
thrd_exit()
longjmp()
#include <stdlib.h>#include <stdio.h>#include <stdnoreturn.h> // causes undefined behavior if i <= 0// exits if i > 0noreturn void stop_now(int i) // or _Noreturn void stop_now(int i){ if (i > 0) exit(i);} int main(void){ puts("Preparing to stop..."); stop_now(2); puts("This code is never executed.");}
輸出:
Preparing to stop...
C11標準(ISO / IEC 9899:2011):
6.7.4函數(shù)說明符(p:125-127)
7.23 _Noreturn <stdnoreturn.h>(p:361)