ruud86 schrieb:
> Hab ich schon probiert, beim umspeichern bekomme ich dann Probleme
>
>
1 | > RGB_t RGB={10, 50, 90};
|
2 | > RGB=red;
|
3 | >
|
>
> Fehlermeldung für die zweite Zeile:
>
>> Error 1 expected expression before '{' token
>
> Was mache ich in dem Fall falsch?
Logisch.
Makros sind ja keine Zauberstäbe.
Makros machen Textersetzung. Nicht mehr.
#define red { 10, 50, 90 }
RGB_t RGB = red;
ist deswegen ok, weil die Syntax zur Initialisierung eines struct nun
mal so aussieht1 | RGB_t RGB = { 10, 50, 90 };
|
Ob du jetzt den Klammerteil direkt hinschreibst, oder ob du den durch
ein Text Suchen&Ersetzen vom Präprozesser einsetzen lässt, ist dem
Compiler ja wurscht. Der kriegt nur das Endergebnis (die letzte Form) zu
sehen und das ist syntaktisch korrekt.
Wohingehend die Zuweisung
syntaktisch nicht korrekt ist. Und daran ändert sich auch nichts, wenn
du den Klammerteil nicht direkt hinschreibst, sondern hinter einer
Textersetzung in Form eines Makros versteckst.
Makros sind keine Wunderwuzzi. Sie machen nur Textersetzungen. Das was
bei dieser Textersetzung herauskommt, muss syntaktisch korrekt sein.
Daran ändert auch ein Makro nichts.