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.


Log in to reply