【发布时间】:2010-04-08 06:54:02
【问题描述】:
正如所料,编译器(VisualStudio 2008)会给出警告
警告 C4715: 'doSomethingWith' : 不是 所有控制路径都返回一个值
编译以下代码时:
int doSomethingWith(int value)
{
int returnValue = 3;
bool condition = false;
if(condition)
// returnValue += value; // DOH
return returnValue;
}
int main(int argc, char* argv[])
{
int foo = 10;
int result = doSomethingWith(foo);
return 0;
}
但是程序运行得很好。 doSomethingWith()函数的返回值为0。
只是未定义的行为,或者是否有特定的规则如何在运行时创建/计算结果值。非 POD 数据类型作为返回值会发生什么?
【问题讨论】:
-
@fnieto:啊,我明白了,这是一个很好的答案。不过自己没找到,在问之前……
标签: c++