-1

我在一篇 pdf 文章中发现不处理枚举常量会产生警告。但在我的 Bloodshed/DevC++ 编译器中,它运行良好,没有任何警告。问题出在哪里?这是一个片段,

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

根据处理香蕉、苹果和蓝莓但不是芒果的 pdf 文档会产生警告,但我找不到警告。

另一件事是枚举变量 my_fruit 的目的是什么。我想知道C中枚举变量是否有任何特殊用途。如果没有独特的用途而是正常的int,那么为什么它们会出现?

4

1 回答 1

4

The warning is referring to the use of an enum fruit variable in a switch:

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

When compiled with gcc -Wall the compiler emits the following warning:

enumeration value 'mango' not handled in switch

This is a useful diagnostic as it alerts the developer to a potential oversight. This is not possible with a collection of unrelated (from the compiler's perspective) const int variables.

于 2012-06-22T15:26:48.703 回答