Ich möchte in der Lage sein, ein Tupel zu definieren, das die Argumente darstellt, die von anderen Makros benötigt werden.
Ich denke, der beste Weg, um zu zeigen, was ich will, ist ein Beispiel:
%Vor% Ich möchte OUTPUT(LED)
dann zu expandieren:
Das Problem, das ich bekomme, ist mit der Reihenfolge der Erweiterung zu tun, und führt zu dem folgenden Fehler:
Makro "OUTPUT" benötigt 3 Argumente, aber nur 1 gegeben
Dies ist für ein AVR-Projekt mit kundenspezifischer Hardware gedacht, wo ich LED
und andere Komponenten mit einem entsprechenden LED_PORT
LED_DDR
und LED_PIN
definiert habe.
Ich möchte dann mehr Makros definieren, die diese LED aufnehmen können und die entsprechenden Argumente verwenden, um die kürzeste mögliche Länge zu erreichen.
Ist das mit dem Standard C-Präprozessor möglich?
Sie können dem Makro eine Umleitungsebene hinzufügen, um dies zu erreichen:
%Vor% Beim erneuten Scannen wird spec
vor OUTPUT_I
erweitert, sodass das Makro OUTPUT_I
drei Parameter anzeigt.
Tags und Links c c-preprocessor avr