簡體   English   中英

為什么用switch語句函數不需要返回

[英]Why function with switch statement doesn't need return

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截圖確認它可以運行

它不是編譯器錯誤。 缺少的返回不需要編譯器的診斷(但編譯器可能會發出一個),並導致未定義的行為 - 任何事情都可能發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM