Frage zu #define

Gast #2786080
Lesenswert?

Kommt drauf an welches Ergebnis zu haben willst.

Bei #define PUNKT  '.'

ersetzt der Präprozessor die folgende Anweisung :

char zeichen=PUNKT; mit char zeichen='.';


Bei #define PUNKT  .

ersetzt der Präprozessor die folgende Anweisung :
char zeichen=PUNKT; mit char zeichen=.;
was wahrscheinlich nicht erwünscht ist.

Ist halt nur eine Textuelle Ersetzung.
Gast #2786084
Lesenswert?

Beide kann richtig sein. Es kommt drauf an, wo Du die Definition 
verwenden willst. Da der Punkt alleine nicht zur C Syntax gehört, 
wolltest Du warscheinlich '.' oder "." definieren.

Aber bei einem Plus Zeichen könnte es auch ohne Anführungszeichen Sinn 
machen:

#define PLUS +

int a= 3 PLUS 4;
(Firma: guloshop.de) #2786137
Lesenswert?

Peter II schrieb:
> hatte ich auch gedacht, wird aber nicht gehen, das leerzeichen bekommt
> man nicht weg.

Ich glaub, innerhalb von weiteren defines ist das schon möglich:
1
#define PUNKT .
2
#define xy(links,rechts) links##PUNKT##rechts
3

4
a= xy(struktur,element);  // ergibt: a= struktur.element;

(Habs aber grad nicht ausprobiert...)

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