8. Juli 200520 j da geht es doch garnicht mit '#ifndef' oder irre ich mich jetzt total. Nein, du irrst dich nicht. Das geht tatsächlich nicht mit #ifdef/#ifndef. Mein Fehler.
8. Juli 200520 j Autor #ifndef MAKRO1 && MAKRO2 ? wie kann man eigentlich Makros auf einen Text Prüfen ? #if MAKRO1 = "Text1" geht nicht :/
8. Juli 200520 j #ifndef MAKRO1 && MAKRO2 ?Das wird nicht funktionieren. Nach #ifdef/#ifndef darf nur ein einzelner Bezeichner stehen. wie kann man eigentlich Makros auf einen Text Prüfen ?Gar nicht. Die Ausdrücke für diese Präprozessordirektiven dürfen nur Ganzzahlen und (Einzel-)Zeichenkonstanten beinhalten. Abgesehen davon müsstest du == benutzen.
8. Juli 200520 j Autor Würde das nicht gehen ? #define TXT "Text" #define MAKRO "Text" #if MAKRO = TXT
8. Juli 200520 j Die Ausdrücke für diese Präprozessordirektiven dürfen nur Ganzzahlen und (Einzel-)Zeichenkonstanten beinhalten. Abgesehen davon müsstest du == benutzen.War daran irgendwas unklar?
8. Juli 200520 j Autor ok... das heißt nein *g* nächste frage: ich hab in der stdflifo.h folgende zeilen: #define VL_MODE_DEFAULT 0 #ifndef VL_MODE #define VL_MODE VL_MODE_DEFAULT #endif in der .cpp hab ich: #define VL_MODE 1 Wieso bekomm ich eine Warnung mit Makro-Neudefinition ? Wird denn zu erst die .h und dann die cpp kompiliert ? O.o
8. Juli 200520 j Headerdateien werden gar nicht kompiliert. Der Inhalt einer Headerdatei wird genau da in die .cpp-Datei hineinkopiert, wo die #include-Direktive steht, bevor die .cpp-Datei kompiliert wird. Ob das also eine (berechtigte) Fehlermeldung wegen Makro-Neudefinition erzeugt, hängt davon ab, ob dein #define vor oder nach der #include-Direktive steht.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.