C 属性: noreturn, _Noreturn (C23 起)

来自cppreference.com
< c‎ | language‎ | attributes


指示函数不会返回。

语法

[[ noreturn ]]
[[ __noreturn__ ]]
[[ _Noreturn ]]
[[ ___Noreturn__ ]]
(弃用)

解释

指示函数不会返回。

这个属性适用于函数名,指示函数不会由于执行返回语句或由于抵达函数体结尾而返回(它可以通过执行 longjmp 返回)。如果有此属性的函数实际返回,则其行为未定义。如果可以检测这种情况,建议编译器予以诊断。

之前曾以关键词 _Noreturn 表示,直至从 C23 起被弃用而代之以这个属性。

标准库

以下标准库函数均被声明带有 noreturn 属性(C23 之前,它们曾以 _Noreturn 说明符声明):

参阅