Unterschied zwischen typedef enum und enum
-
Hallo zusammen,
Was ist bitte der Unterschied zwischen folgendes:
Beispiel:typedef enum {GREEN,Red} color
und
enum color{GREEN,Red}
Was für Vorteile haben die beide Schreibweise und welche ist in C++ zu empfehlen?
Danke
-
Der obere Code wurde vermutlich von einem C-Entwickler geschrieben, der untere von einem C++-Entwickler. In C++ ist da aber kein Unterschied.
In C++ zu empfehlen ist der kürzere ohne das überflüssige typedef - oder sogar noch besser folgende dritte Variante:
enum class color{GREEN, Red};
Wobei ich noch nicht ganz die Logik der Klein- und GROSSschreibung in der Farbenlehre verstanden habe.
-
Ein bisschen mehr ins Detail geht dieser Artikel.
-
In C liegt der Unterschied darin, dass du mit deinem ersten enum
color clr;
schreiben kannst, bei letzterem nur
enum color clr;
Wie geschrieben, das gilt nur für C.
wob schrieb:
In C++ ist da aber kein Unterschied.
In C++ ist der Unterschied, dass man für den ersten Fall z.B. keine Vorwärtsdeklaration machen kann, das ist wohl in den seltensten Fällen ein Problem, aber auch in C++ ist es eben nicht äquivalent.