define schrieb:
> Danke für die Antworten. Es scheitert etwas an der Bedienung von DevCpp.
> Ich möchte mit dem Marco das gleiche erzeugen wie in test1 beschrieben.
> Deswegen habe ich versucht ein & davor zu kleben. Wie kann ich mit dem
> Markro eine Adresse an einen Pointer übergeben, wenn ich es so nicht
> drankleben darf?.
Hier, in
1 | abc_struct test1 = {&afuna,&afunb,&afunc};
|
besteht jede Initialisierung aus 2 Tokens.
Da ist zum einen die Bezeichnung, zb "afuna" und dann ist da der
Operator &, der aussagt, dass davon die Adresse zu nehmen ist.
Du könntest das auch als
1 | abc_struct test1 = { & afuna, & afunb, & afunc };
|
schreiben, oder als
1 | abc_struct test1 = { &
|
2 | afuna, & afunb, &
|
3 | afunc
|
4 | };
|
wenn du willst. Der & hat mit dem afuna erst mal syntaktisch nichts zu
tun.
Nur weil du in C alles in einer Wurscht schreiben kannst, weil die
Syntax so gebaut ist, dass immer klar ist, wo eine 'Einheit' anfängt und
wo sie aufhört, bedeutet das nicht, dass man das auch in einer Wurscht
schreiben muss. Dementsprechend muss man auch nicht mit einem
Token-Pasting Operator im Präprozessor alles zusammenpappen.