c - C函数的隐式int返回值

标签 c function legacy-code

我已经用谷歌搜索了,但似乎找不到这个简单问题的答案。

在遗留代码库上工作(最近移植到 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/

相关文章:

c++ - 构建并执行一堆 void 函数

c# - 理论上是否可以从 C# 访问任何库(又名 PInvoke 在幕后做什么)?

java - 在单元测试期间重置类静态变量

c++ - 用非常大的数字进行计算

javascript - 将文本字段的值复制到另一个文件的文本字段

c - Linux中的函数插入(写函数)

c - c中递增变量的函数

c++ - 如何用其他东西替换 std::binary_function 而不会痛苦?

C++ 编译器错误无法访问类 'std::basic_ios<_Elem,_Traits>' 中声明的私有(private)成员

C getchar() 刽子手游戏