本文主要是介绍warning: #1461-D: function declared with “noreturn“ does return,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
__declspec(noreturn)
通知编译器该函数不返回。然后,编译器可以通过删除从未访问过的代码来执行优化。
注意
此属性具有 GNU 样式的等效项 attribute((noreturn))。
如果函数达到显式或隐式返回, __declspec(noreturn) 被忽略,编译器将生成警告:
Warning: #1461-D: function declared with "noreturn" does return
用法
使用此属性可降低调用永不返回的函数的成本,例如 exit()。
最佳做法是始终终止非返回函数 while(1);。
举例
在报错的函数最后一行增加 while (1);
__declspec(noreturn) void overflow(void); // called on overflowint negate(int x)
{if (x == 0x80000000) overflow();return -x;
}void overflow(void)
{__asm {SVC 0x123; // hypothetical exception-throwing system service}while (1); // 必须增加这一行代码
}
这篇关于warning: #1461-D: function declared with “noreturn“ does return的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!