enumCについて質問です。
enumを次のように定義しました。
typedef enum
{
Hello1 = 1,
Hello2 = 2,
Hello3 = 3
}Hello
Hello hello;
int value = 3;
次に、値を の値と比較する方法はHello?
例えば:
if(value == Hello3)
{
}
または、次のようにする必要があります。
if(value == Hello.Hello3)
{
}
この方法は正しいです:
if (value == Hello3)
{
}
enum定数はタイプintです。
2 番目の構文は無効です。
enumは構造体ではなく、メンバー名は対応するconstants. で定義されたこれらの名前は、 (あなたが考えているように) のようなenumデータ メンバーではありません。enumstruct
enumを使用して、名前付き整数定数のリストを定義するために使用されることを覚えておいてください#define。
だからここにあなたの場合:
if(value == Hello3)
{
}
これは、コンパイル時Hello3に値3(に他ならない)に置き換えられるため、正しい比較方法です。int
たとえば、次のようにすることもできます。
Hello hello=2;
if(hello == Hello2)
{
}