Globales include/define
-
Wahrscheinlich lautet die Antwort "nein", ich frage trotzdem:
Gibt es irgendeine Art, ein "globales" Include oder Define in einem Projekt durchzuführen? Das heißt, ohne dass ich das in jede Datei schreiben muss, wird eine #include-Direktive oder meinetwegen auch eine #define-Direktive ausgeführt?
Ich finde es nämlich ein wenig ätzend, dass ich in jede Datei oben die Definition
#define and && #define or ||hineinschreiben muss, weil der doofe VC++ 8.0 sie nicht beherrscht.
-
include den header der and und or enthält. gehört zur standardbibliothek.
-
iso646.h
-
Inkludieren musst du es aber trotzdem noch in jeder cpp, weil der Compiler separat jede cpp-Datei einzeln kompiliert und über die Headerdateien alle Abhängigkeiten dieses Schrittes auflöst. Du kannst es aber über die Option "Includes erzwingen" in den Projektoptionen machen, dass dieser Header ohne explizite Include-Anweisung inkludiert wird. Die Option wird sicherlich in 8.0 auch noch enthalten sein.
-
and und or sind aber schlüsselwörter, die musst du gar nicht definieren.
-
Beim gcc und anderen Compilern geht das auf Kommandozeile mit der -D Option. Beim VC müsste es ein Pendant geben.
-
Danke, die Option /D gibt es tatsächlich -- auch über den Einstellungsdialog des Projekts. Allerdings geht da wohl einiges schief. Wenn ich z.B. die Option /D"#include <ciso646>" anschalte, bekomme ich in "stdio.h" jede Menge Fehler, dabei ist diese Datei in meinem Projekt nicht einmal enthalten ... ähnlich ist es, wenn ich stattdessen den Schalter /D"#define or ||" verwende.
-
Mit /D definiert man ein Makro, Präprozessor Anweisungen kannst du damit aber nicht verwenden.
IIRC sieht die Verwendung ungefähr wie folgt aus:/DNDEBUG /Dor=||
-
groovemaster schrieb:
Mit /D definiert man ein Makro, Präprozessor Anweisungen kannst du damit aber nicht verwenden.
IIRC sieht die Verwendung ungefähr wie folgt aus:/DNDEBUG /Dor=||Ups, hätte ich bloß mal geRTFMt, da hätte ich das wohl auch gefunden. Danke jedenfalls. Das klappt wunderbar.