Ich habe hier in Forum die sbit.h entdeckt und noch eine Frage dazu: Aus welchem Grund wird zuerst SBIT_ definiert und danach steht #define SBIT(x,y) SBIT_(x,y) Wieso kann man nicht gleich SBIT definieren? Kann das irgendwelche Nebenwirkungen haben? http://www.mikrocontroller.net/attachment/highlight/254049
Noch was: Wie nennt man des ## im define? Wonach muss ich googlen um eine Erklärung zu finden was genau ich damit machen kann?
Das ist der 'Token pasting' operator. Und dessen Verhalten ist der Grund für die 'Ehrenrunde' über ein Zwischenmakro. Du willst nämlich haben, dass Argumente die an ein Makro übergeben werden, die selbst wieder Makros sind, ausgewertet werden.
Danke für die Antwort, jetzt bleibt nur noch die Frage offen, welchen Vorteil es bringt das define noch mal zu definieren, bringt es überhaupt einen?
Chris schrieb: > jetzt bleibt nur noch die Frage offen, welchen Vorteil es bringt das > define noch mal zu definieren, bringt es überhaupt einen? Ja, natürlich. Schau dir doch einfach mal an, was passiert, wenn du nur ein Makro verwendest: es wird nicht der "Inhalt" des Arguments übergeben, sondern der Name/Text des Arguments. Nur mit dem 2stufigen System geht das was du erreichen willst. (Sorry für diese schwammige Erklärung, ich hoffe man kann es verstehen ;) ) Bei Unklarheiten kannst du dir auch den Präprozessoroutput anschauen, hilft bei so was oft
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.