本文介绍了缺少返回值的函数,运行时的行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如预期,编译器(VisualStudio 2008)会发出警告
As expected, the compiler (VisualStudio 2008) will give a warning
:
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。
But the program runs just fine. The return value of function doSomethingWith() is 0.
Is只是未定义的行为,或者是否有一定的规则在运行时如何创建/计算结果值。非POD数据类型作为返回值会发生什么?
Is is just undefined behavior, or is there a certain rule how the result value is created/computed at runtime. What happens with non-POD datatypes as return value?
推荐答案
它是ISO C ++标准第6.6节中规定的未定义行为。 3:
It is Undefined behaviour as specified in the ISO C++ standard section 6.6.3:
这篇关于缺少返回值的函数,运行时的行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!