gpt4 book ai didi

c++ - 为什么带有 switch 语句的函数不需要 return

转载 作者:太空狗 更新时间:2023-10-29 23:52:59 25 4
gpt4 key购买 nike

enum MyEnum
{
A,
B,
}

MyEnum Foo(int i)
{
MyEnum mx;
switch(i)
{
case 1:
{
mx = A;
}break;
case 2:
{
mx = B;
}break;
default:
{
throw std::exception("ERROR");
}
}
}

int Main()
{
MyEnum myEnum = Foo(1);
return 0;
}

如果Foo( )中没有'return',这段代码可以在VS2010中编译运行。是编译器错误吗?

VS2010 screenshot确认可以运行

最佳答案

这不是编译器错误。缺少返回不需要编译器进行诊断(但编译器可能会发出诊断),并且会导致未定义的行为 - 任何事情都可能发生。

关于c++ - 为什么带有 switch 语句的函数不需要 return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13013754/

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