Macro expandiert nicht richtig?
-
Hallo zusammen,
folgendes Problem:
Ich habe ein Makro geschrieben:#define x root=/dev/ram
dieses wird aber folgendermaßen expandiert:
root= /dev/ram
also mit einem Leerzeichen zwischen dem Slash und dem Gleichheitszeichen.
Das ganze mit " zu Quoten macht auch keinen Sinn, denn der Output des Präprozessors wird in ein automatisch erzeugtes Skript geschrieben. Es wird also nicht verwendet um damit den C-Compiler zu füttern.
Hat jemand eine Idee was zu tun ist, damit direkt aus dem Präprozessor das Makro ohne das Leerzeichen expandiert?Vielen Dank
Gruss Christian
-
woher weißt du, dass das Makro falsch expandiert wird? gcc -E ausgeführt?
~ $ cat macro.c #define x root=/dev/sda x x x x x x ~ $ gcc -E macro.c # 1 "macro.c" # 1 "<built-in>" # 1 "<command line>" # 1 "macro.c" root=/dev/sda root=/dev/sda root=/dev/sda root=/dev/sda root=/dev/sda root=/dev/sda
-
Hallo Supertux, vielen Dank für die Antwort.
Ich habe vergessen zu erwähnen, daß ich in diesem Falle mit Microware OS9 (nicht MAC OS 9!) arbeite. Zwar ist die Entwicklungsumgebung Linux aber das Zielsystem OS9.
Der Compiler ist daher nicht der GCC. Aber das werde ich jetzt nachholen.Gruss Christian