c と c++ の両方enum
で、タグで定義できます
enum e_smth {
smth_one,
smth_two,
smth_err
};
またはタグなし
enum {
smth_one,
smth_two,
smth_err
};
switch
tag で定義されている場合、c と c++ の両方のステートメントで意味があります。
e_smth some_var;
....//do some stuff with some_var
switch (some_var)
{
case smth_one:
break;
case smth_two:
break;
}
-Wswitch
これが gcc または g++ でコンパイルされる場合、警告 が生成 されます。
これは、c++ での関数の宣言と変数の初期化で意味があります。
e_smth var;
var=99;
-fpermissive
g++ でコンパイルするとエラーが発生します。
タグの有無にかかわらず、両方のタイプをパラメーターなしの 1 つのファイル#define
マクロとして使用できます。
アップデート
パラメータなしで1つのファイル
#define
マクロとして使用できます
意味:#define MAX 1000
ファイルに書き込んでMAXをグローバルに追加する代わりにenum { MAX=1000 }
、ファイルスコープでのみ使用します
typedef enum { a,b,c } some_t;
匿名の列挙型についてはどうでしょうか。使用例が 1 つだけ見つかりました。
質問:
すべての合理的な使用例をまだ説明していない場合、匿名の列挙型には何を使用する必要がありますか?