为什么即使我没有包含return语句,在C ++中返回`int`的函数也会编译?

时间:2015-11-26 14:19:35

标签: c++ visual-c++

如果我不包含return语句,为什么返回数值如C {+ 1}}或int的C ++函数可以正常工作? 即使程序运行良好,我应该避免这种情况吗? 感谢

1 个答案:

答案 0 :(得分:3)

它可以“正常工作”有两个原因:

  1. 你的函数不是main(),在这种情况下,没有return语句的结尾会导致未定义的行为 1 ,它恰好似乎发生了工作正常。但事实并非如此。
  2. 该函数为main(),具有隐式return 0;
  3. 对于案例1,您应该认为您的代码严重损坏并修复它。

    C ++ 11标准中

    1 §6.3.3[stmt.return]