函数可能是属性'noreturn'的候选者

时间:2014-09-08 18:55:41

标签: c

void sbs(){
      exit(0);
    }

警告:

  

函数可能是属性'noreturn'的候选者

获得警告,因为没有返回..但是这里没有调用return,而是调用exit(0)。

2 个答案:

答案 0 :(得分:3)

警告完全合法。

属性noreturn意味着您应该像这样编写原型:

C11: _Noreturn void neverreturn()

_Noreturn是属性。

或GCC变体: __attribute__((__noreturn__)) void neverreturn()

这显然是__noreturn__

有了这个,编译器就可以进行优化,因为它知道函数永远不会返回。

答案 1 :(得分:0)

正如其他人所说,你的函数应该告诉编译器它不会返回给调用者。

请查看以下链接。

What is the point of noreturn?

‘noreturn’ function does return