ich zur Zeit aufrufen Klappern oder gcc alswenn nur eine Vorverarbeitung, das heißt gcc -E
cc -E -DPREPROCESSING ...
wenn Makros debuggen.
Es ist mir aufgefallen, dass die Definition redundant ist. Gibt es einen Ausdruck, den ich in die Quelle schreiben könnte, um festzustellen, wann der Compiler nach der Vorverarbeitung stoppt, und diese Definition aus meinen Build-Skripten zu löschen?
#if magic
#define PREPROCESSING
#ending
Ein Blick auf die Dokumente schlägt nicht vor, aber mit etwas Glück vermisse ich etwas.
dies nicht sehr allgemein Wert hätte und Wanzen bauen einführen würde. Ein Build-System kann die Vorverarbeitung als separaten Schritt auswählen und den Compiler mehrmals aufrufen. Wenn dieses Feature vorhanden wäre, würde das Vorverarbeiten und dann das separate Kompilieren (beispielsweise zum Verbessern der plattformübergreifenden parallelen Erstellungsleistung) eine andere Ausgabe erzeugen als das Vorverarbeiten und Kompilieren in einer einzelnen Ausführung. Das wäre sehr überraschend und fehleranfällig. Wie würden Sie in diesem Fall vorkompilierte Header behandeln? –