noreturn

Microsoft 专用

此 __declspec 特性告知编译器函数不会返回。 因此,编译器了解到调用 __declspec(noreturn) 函数后的代码是不可访问的。

如果编译器找到带有不返回值的控制路径的函数,则它会生成警告 (C4715) 或错误消息 (C2202)。 如果因一个从不返回的函数导致无法到达控制路径,则可使用 __declspec(noreturn) 阻止此警告或错误。

备注

__declspec(noreturn) 添加到应返回的函数会导致未定义的行为。

示例

在下面的示例中,else 子句不包含 return 语句。将 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++ 关键字