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

Frage:

Wenn ich noch nicht alle vernünftigen Anwendungsfälle beschrieben habe, was für anonyme Aufzählungen sollte verwendet werden?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage