2012-06-22 134 views
-1

我在一篇pdf文章中發現不處理枚舉常量的文章會生成警告。但在我的Bloodshed/DevC++編譯器中,它沒有任何警告就能正常工作。哪裏有問題? 這裏是一個片段,枚舉事實

enum fruit {banana, apple, blueberry, mango} my_fruit; 

根據該PDF文檔處理香蕉,蘋果,藍莓,但不是芒果會生成一個警告,但我不能找到警告。

另一件事是什麼是在這裏枚舉變量my_fruit的目的。我想知道的是在C語言中有沒有什麼特殊用途的枚舉變量。如果沒有特別的用法而不是正常的int,那麼它們爲什麼存在?

+0

**你處理**的含義是什麼?你能鏈接你引用的pdf資源嗎? – wap26

+0

處理手段在這裏稍後使用。想想在開關塊中使用前三個,但不是最後一個...... –

+0

好的,然後在你的問題中提及'switch'。 – wap26

回答

4

該警告是指使用enum fruit變量的一個switch

switch (my_fruit) 
{ 
case banana: 
    break; 
case apple: 
    break; 
case blueberry: 
    break; 
} 

當與gcc -Wall編譯編譯器發出以下警告:

枚舉值「芒果」沒有處理in switch

這是一個有用的診斷,因爲它提醒de veloper潛在的監督。這是不可能的,從一組無關(從編譯器的角度來看)const int變量。