在我的 VS2010 副本中,stdlib.h 包含(第 353-355 行)
_CRTIMP __declspec(noreturn) void __cdecl exit(_In_ int _Code);
_CRTIMP __declspec(noreturn) void __cdecl _exit(_In_ int _Code);
_CRTIMP void __cdecl abort(void);
我觉得奇怪的是没有noreturn
注释abort()
。有谁知道这是什么原因?它是一个错误吗?
编辑:在 VS2008 中,它是相同的,但 stdlib.h 的第 371-373 行
缺少noreturn
注释会触发错误 C4716。
进一步参考: C++0x 关于注解标准化的提案noreturn
,其中说abort
应该携带它。
编辑:看起来一堆讨论随着删除的答案消失了,但它的要点包含在缺陷报告 #048中。