Was macht der Befehl "#ifdef 0"?

Gast #823099
Lesenswert?

Hallo zusammen,

ich versuche gerade mich in vorhanden Code einzuarbeiten und bin auf 
folgenden Befehl gestossen:

#ifdef 0

Der Compiler gibt hierfür "nur" eine Warnung aus: warning: expected an 
identifier

Kann mir jemand verraten, was der Befehl bewirkt?

Danke und Gruß
Markus
#823109
Lesenswert?

MArkus,

#define ist ein Preprocessor Befehl- ändert den Text bevor compiliert 
wird - hier ein Beispiel:
1
// Only one of the clockspeeds can be defined, comment out all others
2
//#define FCY_26MHZ 1
3
#define FCY_13MHZ 1
4

5
#ifdef  FCY_13MHZ      
6
#define FCY 13000000   <--- dieser Code wird compiliert
7
#endif
8

9
#ifdef  FCY_26MHZ
10
#define FCY 26000000 <--- dieser Code wird nicht compiliert
11
#endif

Wenn der Ausdruck nach #ifdef wahr (ungleich Null) ist, wird der Code 
bis zum #endif in den Code eingefügt, sonst nicht.

Gruß

Gerd.
Gast #823112
Lesenswert?

Mit #ifdef prüfst du, ob ein Symbol definiert wurde und wenn ja, wird 
der folgende Code zum Compiler geschickt.

0 ist keine Symbol, deswegen wird nach einem Identifier (eine vorher 
definierte KONSTANTE) gefragt. Vermutlich wird dein Code dann trotzdem 
an den Compiler geschickt und 'normal' kompiliert.
Gast #823116
Lesenswert?

Hallo,

danke für die schnellen Antworten. :-)

ich habe mich nicht ganz genau ausgedrückt. Was #ifdef prinzipiell 
macht, weiß ich. Allerdings weiß ich nicht, was passiert, wenn auf "0" 
geprüft wird.

Wird der code dann immer ausgeführt oder gar nicht?

Danke und Gruß
Markus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren