C中的函数在它应该返回int时不返回任何内容

时间:2012-05-31 01:12:25

标签: c

  

可能重复:
  Function returns value without return statement

返回int的函数的返回值是什么,但是没有显式返回任何内容。

例如

的输出
    int fun()
    {
            printf("\ncrap");
    }


    void main()
    {
            printf("\n return value of fun %d", fun());
    }

我得到的输出是:

  crap
  return value of fun 1

这取决于我使用的编译器吗?

谢谢!!!

3 个答案:

答案 0 :(得分:2)

你在fun()函数中没有返回值,因此返回的值是未定义的。

答案 1 :(得分:1)

它可能会返回EAX寄存器中的任何内容,如果没有明确的返回值,这可能是不可靠的:

https://stackoverflow.com/a/4644913/375399

答案 2 :(得分:-1)

这取决于编译器。 这是我的输出,供您参考

编译器:i686-apple-darwin11-llvm-gcc-4.2

crap
return value of fun 0