1

重複の可能性:
関数はreturnステートメントなしで値を返します

intを返すが、明示的に何も返さない関数の戻り値は何ですか。

たとえば、の出力

    int fun()
    {
            printf("\ncrap");
    }


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

私が得ている出力は次のとおりです。

  crap
  return value of fun 1

これは私が使用しているコンパイラに依存しますか?

ありがとう !!!

4

3 に答える 3

2

fun() 関数には戻り値がないため、返される値は未定義です。

于 2012-05-31T01:14:30.603 に答える
1

EAXレジスタにあるものは何でも返す可能性がありますが、これはおそらく明示的な戻り値なしでは信頼できません:

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

于 2012-05-31T01:16:16.700 に答える
-1

コンパイラに依存します。参考までに、それは私の出力です

コンパイラ: i686-apple-darwin11-llvm-gcc-4.2

crap
return value of fun 0
于 2012-05-31T01:20:52.793 に答える