如果一个函数用int作为指定的返回类型,没有任何return语句,即没有返回值,它会返回垃圾值吗?

时间:2014-08-31 13:12:39

标签: c++

该程序在主函数内打印cout的垃圾值。

CODE:

#include <iostream>

using namespace std;
int f(int num)
{
    cout<<num<<endl;   
}
int main()
{
   cout << f(5) << endl; 

   return 0;
}

输出:

5

6296224

有这样的规则吗?

1 个答案:

答案 0 :(得分:3)

在C中,如果使用返回值,它将调用未定义的行为:

  

(C11,6.9.1p12)&#34;如果到达终止函数的},并且调用者使用函数调用的值,则行为未定义。&#34;

在C ++中,函数调用是未定义的行为:

  

(C ++ 11,6.6.3p2)&#34;从函数末尾流出相当于没有值的返回;这会导致值返回函数中的未定义行为。&#34;