Brauche Hilfe bei defines

Gast #754244
Hallo,

ich definiere mir gerade ein paar Sachen mit #defines:

#ifndef DEFINES_H
#define DEFINES_H

#define LED_on  0x05;
#define LED_off 0x00;

#endif


und weise einer Variablen dann die Bedingung zu


if(counter == 100)
LED = LED_on;



Ist es auch möglich das so zu schreiben:

#ifndef DEFINES_H
#define DEFINES_H

#define LED_on  LED=0x05;
#define LED_off LED=0x00;

#endif
Klar ist das im Prinzip möglich. #define macht nur eine Textersetzung. 
Und wenn der Text, der für das Makro eingefügt wird, syntaktisch in 
Ordnung ist, dann ist das kein Problem.

In Deinem Fall solltest Du aber in der Makrodefinition jeweils das 
Semikolon am Ende weglassen. Sonst gibt es nämlich Ärger, wenn Du dann 
schreibst
1
#define LED_on  LED=0x05;
2
//...
3
LED_on;
Der Präprozessor macht daraus
1
LED=0x05;;
...und da ist dann ein Semikolon zu viel ...

Also besser
1
#define LED_on  LED=0x05
Gast
Ein #define ist eine Präprozessoranweisung. Der Präprozessor ersetzt 
einfach Texte durch andere Texte.
Wenn du schreibst:

#define LED_on  LED=0x05;
...
LED = LED_on;


ersetzt der Präprozessor das in:

LED = LED=0x05;

ich glaube nicht, dass du das damit bezwecken willst. Deshalb würde ich 
sagen:

Nein, das kann man nicht so schreiben.

Thorsten

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.