Hallo Zusammen Ich brauche mal eure Hilfe und verzweifle gerade. Ich habe folgendes Konstrukt: #define PORT PORTE #define ISR(x) x ## _INT0_vect #define ISR_VECTOR ISR(PORT) Ich erwarte nach dem Präprozessordurchlauf für ISR_VECTOR: PORTE_INT0_vect Ich bekomme: PORT_INT0_vect Habt Ihr eine Lösung oder könnt mir erklären, waum er ISR(x) auflöst aber Port nicht? Ich würde gerne das #define PORT in die Headerdatei verschieben. So dass nur an dieser Stelle geändert werden muss. Vielen Dank vorab!
Das hängt mit der Reihenvolge bei der Makrosubstitution zusammen. So müsste es gehen:
1 | #define PORT PORTE
|
2 | #define ISR(x) x ## _INT0_vect
|
3 | #define ISR_VECTOR_EVAL(x) ISR(x)
|
4 | #define ISR_VECTOR ISR_VECTOR_EVAL(PORT)
|
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.