Hallo Forengemeinde,
irgendwie schaffe ich es nicht, meinem Compiler (gcc) das bedingte
Compilieren anzugewöhnen. Habe offensichtlich Verständnissprobleme.
Habe einen kurzen Beispielcode geschrieben, um das ganze zu
demonstrieren. Der Code hat keinen praktischen Nährwert. Here we go:
1 | #include "stdio.h"
|
2 |
|
3 | #define VEHICLE AUDI
|
4 |
|
5 | #if VEHICLE == BMW
|
6 | #define TORQUE 350
|
7 | #define FAHRZEUG "BMW"
|
8 | #elif VEHICLE == AUDI
|
9 | #define TORQUE 250
|
10 | #define FAHRZEUG "Audi"
|
11 | #elif VEHICLE == VW
|
12 | #define TORQUE 150
|
13 | #define FAHRZEUG "VW"
|
14 | #else
|
15 | # error VEHICLE does not match any implemented vehicle
|
16 | #endif
|
17 |
|
18 | main()
|
19 | {
|
20 | printf("Fahrzeug: %s, Torque: %u\n",FAHRZEUG,TORQUE);
|
21 | }
|
Ich möchte vor dem Compilieren in der ersten #define Anweisung das
Fahrzeug definieren und erwarte, dass der Compiler nur den
entsprechenden Zweig compiliert. Macht er aber nicht, die Ausgabe ist
immer
Fahrzeug: BMW, Torque: 350
unabhängig davon, welches Fahrzeug ich eingetragen habe.
Irgendwie muss doch in den Beispielen, die man so ließt, z.B.
das Macro SYSTEM belegt worden sein.
Bin für jeglichen Tip dankbar.
Gerhard