_Noreturn 函数说明符
来自cppreference.com
指明函数不会返回到其调用点。
语法
_Noreturn 函数声明 | (C11 起)(C23 中弃用) | ||||||||
解释
_Noreturn
关键词出现于函数声明中,指定函数不会由于执行到 return
语句或抵达函数体结尾而返回(可能通过执行 longjmp 返回)。若声明为 _Noreturn
的函数返回,则行为未定义。若编译器能检测此错误,则推荐编译器予以诊断。
_Noreturn
说明符可以在同一函数声明中出现多于一次,行为与只出现一次相同。
此说明符通常通过便利宏 noreturn 使用,该宏于头文件 <stdnoreturn.h>
提供。
宏 |
(C23 起) |
关键词
标准库
下列标准库中的函数为 noreturn
:
示例
运行此代码
输出:
Preparing to exit...
引用
- C23 标准(ISO/IEC 9899:2024):
- 6.7.4 Function specifiers (第 TBD 页)
- 7.23 _Noreturn <stdnoreturn.h> (第 TBD 页)
- C17 标准(ISO/IEC 9899:2018):
- 6.7.4 Function specifiers (第 90-91 页)
- 7.23 _Noreturn <stdnoreturn.h> (第 263 页)
- C11 标准(ISO/IEC 9899:2011):
- 6.7.4 Function specifiers (第 125-127 页)
- 7.23 _Noreturn <stdnoreturn.h> (第 361 页)
参阅
[[noreturn]] (C23)[[_Noreturn]] (C23)(弃用)
|
指定函数不会返回 (属性指示符) |