定义一个返回类型为非void的函数,在函数结尾没有return语句,这样做是否合法?
gcc
和clang
只会发出警告。这样的代码是否合法?还是说这些编译器只是宽容?
gcc
:
warning: no return statement in function returning non-void [-Wreturn-type]
clang
:
如果这是合法的,那么有没有定义行为来确定将返回什么值?warning: control reaches end of non-void function [-Wreturn-type]