Was macht der Befehl "#ifdef 0"?

Gast #823099
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.