0
我使用VC2008作爲我的編譯器,它是驚訝,我認爲一個枚舉可能沒有定義的應用:爲什麼會枚舉類型沒有使用定義
void func(enum EnumType type)
{
}
以上代碼可以編譯和運行,而不一個問題,任何人都可以解釋它爲什麼有效?
更新: 我可以定義在C++中的空枚舉,如下:
enum EnumType {};
我使用VC2008作爲我的編譯器,它是驚訝,我認爲一個枚舉可能沒有定義的應用:爲什麼會枚舉類型沒有使用定義
void func(enum EnumType type)
{
}
以上代碼可以編譯和運行,而不一個問題,任何人都可以解釋它爲什麼有效?
更新: 我可以定義在C++中的空枚舉,如下:
enum EnumType {};
這顯然是一個非標準的Visual C++語言擴展。
您不能在標準C++中轉發聲明enum
。
你是否認爲表達式「enum EnumType type」作爲前向聲明? – 2010-10-16 00:30:36
@Dbger:是的。*** – 2010-10-16 00:35:30
如果這是真的,似乎MS在這裏做出2個技巧:1.當你聲明函數的參數時,你可以轉發declare sth; 2. VC++認爲枚舉的大小應該總是4個字節,至少默認情況下。 – 2010-10-16 00:44:25