gpt4 book ai didi

c++ - 缺少返回值的函数,运行时的行为

转载 作者:IT老高 更新时间:2023-10-28 23:10:44 26 4
gpt4 key购买 nike

正如所料,编译器(VisualStudio 2008)会给出警告

warning C4715: 'doSomethingWith' : not all control paths return a value

编译以下代码时:

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 数据类型作为返回值会发生什么?

最佳答案

这是 ISO C++ 标准第 6.6.3 节中指定的未定义行为:

Flowing off the end of a function is equivalent to a return with no value; this results in undefined behavior in a value-returning function.

关于c++ - 缺少返回值的函数,运行时的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2598084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com