Moin moin, ne kurze frage. welcher der beiden schreibweise in einer header-datei ist richtig? #define PUNKT '.' oder #define PUNKT . danke, klausi
Klausi schrieb: > #define PUNKT '.' > > oder > > #define PUNKT . Warum nicht so? #define PUNKT "." Kommt doch immer drauf an, was du vorhast.
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.
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;
Klausi schrieb: > ne kurze frage. welcher der beiden schreibweise in einer header-datei > ist richtig? Beides sind gültige Definitionen. Was richtig ist, musst du (oder der Autor) des Programms wissen.
Stefan schrieb: > Da der Punkt alleine nicht zur C Syntax gehört, stimmt nicht ganz...
1 | #define PUNKT .
|
2 | struct
|
3 | {
|
4 | int x; |
5 | int y; |
6 | } punkt; |
7 | |
8 | int x(void) |
9 | {
|
10 | return punkt PUNKT x; |
11 | }
|
sebastian schrieb: > stimmt nicht ganz... hatte ich auch gedacht, wird aber nicht gehen, das leerzeichen bekommt man nicht weg.
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...)
Peter II schrieb: > sebastian schrieb: >> stimmt nicht ganz... > > hatte ich auch gedacht, wird aber nicht gehen, das leerzeichen bekommt > man nicht weg. Die Leerzeichen stören höchstens dich bezüglich der Optik, aber nicht den Compiler bezüglich der Syntax.
Interessant, das wusste ich noch nicht. Man lernt immernoch dazu. Also anstelle von punkt.x kann ich auch punkt . x schreiben?
Stefan Frings schrieb: > Also anstelle von punkt.x kann ich auch punkt . x schreiben? Du könntest sogar
1 | punkt
|
2 | .
|
3 | x
|
schreiben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.