c と c++ の両方enumで、タグで定義できます
enum e_smth {
smth_one,
smth_two,
smth_err
};
またはタグなし
enum {
smth_one,
smth_two,
smth_err
};
switchtag で定義されている場合、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;
-fpermissiveg++ でコンパイルするとエラーが発生します。
タグの有無にかかわらず、両方のタイプをパラメーターなしの 1 つのファイル#defineマクロとして使用できます。
アップデート
パラメータなしで1つのファイル
#defineマクロとして使用できます
意味:#define MAX 1000ファイルに書き込んでMAXをグローバルに追加する代わりにenum { MAX=1000 }、ファイルスコープでのみ使用します
typedef enum { a,b,c } some_t;匿名の列挙型についてはどうでしょうか。使用例が 1 つだけ見つかりました。
質問:
すべての合理的な使用例をまだ説明していない場合、匿名の列挙型には何を使用する必要がありますか?