Hi, ich habe ein kleines Problem mit einem Makro: #define LED1 2,2 #define LED2 2,3 #define MAKRO_A(a,b) funktion(a,b) #define MAKRO_B(c,d) MAKRO_A(c,d) Aufruf: MAKRO_B(LED1); Problem: Meldung: ../test.c:593:36: error: macro "MAKRO_B" requires 2 arguments, but only 1 given Kann es sein dass erst die Makros und dann die defines aufgelöst werden, so dass zur Zeit der Auflösung des Makros nur das Define und nicht dessen ersetzung "gesehen" wird? Wenn ja, wie kann ich das umgehen. Die Makro in Makro verkapselung kommt durch die Verteilung auf mehrere c-Dateien zustande und ist nicht ganz so eindeutig wie hier dargestellt... Danke, M.
Wenn es nicht anderweitig kneift, kannst du das so ändern:
1 | #define LED1 2,2
|
2 | #define LED2 2,3
|
3 | |
4 | #define MAKRO_A(a) funktion(a)
|
5 | #define MAKRO_B(c) MAKRO_A(c)
|
6 | |
7 | MAKRO_B(LED1); |
Maddin schrieb: > Wenn ja, wie kann ich das umgehen. Die Makro in Makro verkapselung kommt > durch die Verteilung auf mehrere c-Dateien zustande und ist nicht ganz > so eindeutig wie hier dargestellt... MAKRO_B ist doch dasselbe wie MAKRO_A, pack doch MAKRO_A in eine eigene Headerdatei, die dann in verschiedenen Sourcen eingebunden wird. mfg mf
Maddin schrieb: > aber wie o. warum kommt der Fehler zustande? Durch die Reihenfolge in der Abarbeitung der Makros/ Textersetzungen
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.