void sbs(){
exit(0);
}
警告:
函数可能是属性'noreturn'的候选者
获得警告,因为没有返回..但是这里没有调用return,而是调用exit(0)。
答案 0 :(得分:3)
警告完全合法。
属性noreturn
意味着您应该像这样编写原型:
C11:
_Noreturn void neverreturn()
_Noreturn
是属性。
或GCC变体:
__attribute__((__noreturn__)) void neverreturn()
这显然是__noreturn__
。
有了这个,编译器就可以进行优化,因为它知道函数永远不会返回。
答案 1 :(得分:0)