In welchen Situationen sollte eine anonyme Aufzählung verwendet werden?
In c und c ++enum
könnte mit tag definiert werden
<code>enum e_smth { smth_one, smth_two, smth_err }; </code>
oder ohne tag
<code>enum { smth_one, smth_two, smth_err }; </code>
Wenn es mit tag definiert wurde, ist es in sinnvollswitch
Anweisungen in c und c ++:
<code>e_smth some_var; ....//do some stuff with some_var switch (some_var) { case smth_one: break; case smth_two: break; } </code>
wird herstellen-Wswitch
Warnung, wenn dies mit gcc oder g ++ kompiliert wird.
Dies ist in Funktionsdeklarationen und Variableninitialisierungen in c ++ sinnvoll:
<code>e_smth var; var=99; </code>
Wird herstellen-fpermissive
Fehler beim Kompilieren mit g ++.
Beide Typen mit oder ohne Tag können als eine Datei verwendet werden#define
Makro ohne Parameter.
aktualisieren
könnte als eine Datei verwendet werden#define
Makro ohne Parameter
gemeint: Statt zu schreiben#define MAX 1000
in Datei und Hinzufügen von MAX zur globalen Verwendungenum { MAX=1000 }
nur im Dateibereich
Und was ist mit anonymen Aufzählungen? Ich habe nur einen Anwendungsfall gefunden: Definition wietypedef enum { a,b,c } some_t;
macht es wie Enum mit Tag arbeiten
Wenn ich noch nicht alle vernünftigen Anwendungsfälle beschrieben habe, was für anonyme Aufzählungen sollte verwendet werden?