enum oder define?
-
Sollte man lieber ein enum definieren oder über den Präprozessor arbeiten? Hier nen kleines Beispiel was ich meine:
#define REGISTRY 0x00 #define FILE 0x01 #define FOLDER 0x02 // oder: enum mein_enum { REGISTRY, FILE, FOLDER };
Macht es zur Lafuzeit überhaupt noch einen Unterschied?
-
die Frage sollte eher sein: const oder enum
es steht doch in jedem c++ buch das man dafuer den präprozessor *nicht* benutzt.
-
#define würde ich für Konstanten in C++ niemals einsetzen. Die Frage sollte also eher lauten konstante-Werte oder Enumeration?
Bei Aufzählungen würde ich persönlich dann eher zu einer Enumeration greifen.
MfG SideWinder
-
Es ist mir klar dass man #define vermeiden sollte, aber warum wirds dann (z.b. in der Winapi) so oft verwendet?
Dann frag ich eben nochmal so:
#define REGISTRY 0x00 #define FILE 0x01 #define FOLDER 0x02 // oder: enum mein_enum { REGISTRY, FILE, FOLDER }; // oder: const int REGISTRY = 0x00; const int FILE = 0x01; const int FOLDER = 0x02;
Edit: Achja bei mir gehts um eine Statusabfrage. Jedes Objekt kann ein verschiedener Status haben und soll so gekennzeichnet sein...
-
WinAPI = C
-
FireFlow schrieb:
Es ist mir klar dass man #define vermeiden sollte, aber warum wirds dann (z.b. in der Winapi) so oft verwendet?
Die WinAPI ist C, und in C sind konstanten nicht so konstant wie in C++.
//Edit: mal wieder zu spät
-
Ich bin wie gesagt für Enumeration
MfG SideWinder
-
Ja und...? In C gibts auch Enumerations und Konstanten
-
FireFlow schrieb:
Ja und...? In C gibts auch Enumerations und Konstanten
Ah ja...
-
Kann mir noch jemand sagen ob es zur Laufzeit einen Unterschied macht oder ob der Compiler eh das gleiche daraus macht...
-
Kein Unterschied.