我已经用谷歌搜索了,但似乎找不到这个简单问题的答案。
在遗留代码库上工作(最近移植到 Linux,并慢慢更新到新的编译器),我看到了很多
int myfunction(...)
{
// no return...
}
我知道函数的隐式返回类型是int,但是没有指定返回值时隐式返回值是多少。我已经测试并得到 0,但这仅适用于 gcc。这个编译器是特定的还是标准定义为 0?
编辑:12/2017 根据它引用更新版本的标准调整接受的答案。
最佳答案
摘自新约中引用的 '89 标准:
Flowing off the end of a function is equivalent to a return with no expression. In either case, the return value is undefined.
该标准通常表达了预先存在的实现的实际行为。
关于c - C函数的隐式int返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079089/