Bee*_*orn 2 c++ return visual-studio-2010 switch-statement
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;
}
Run Code Online (Sandbox Code Playgroud)
如果没有Foo()中的'return',则可以在VS2010中编译和运行此代码.是编译器错误吗?
VS2010截图确认它可以运行
它不是编译器错误.缺少的返回不需要编译器的诊断(但编译器可能会发出一个),并导致未定义的行为 - 任何事情都可能发生.
| 归档时间: |
|
| 查看次数: |
705 次 |
| 最近记录: |