Variadic Makros Alternative in ANSI C

7

Ich weiß, dass variadic Makros in C99 hinzugefügt wurden (und über GNU-Erweiterungen). Ich habe mich gefragt, ob es in ANSI C eine nette Alternative gibt.

Ich habe mir so etwas ausgedacht, aber es ist immer noch irgendwie peinlich:

%Vor%

Damit kann man das so nennen:

%Vor%

Es ist nichts falsch an diesem Ansatz, aber ich frage mich, ob es eine schönere Art ist, es zu tun? Z.B. ohne Notwendigkeit, Datei / Zeile jedesmal anzugeben.

Ich würde mich über Feedback freuen. :)

Edit: Mit ANSI C meine ich hier C89.

Bearbeiten: Die Antwort unten ist in Ordnung, aber ich glaube, da es die Ausführung des Druckbefehls Twise erfordert, kann es einige Thread-Sicherheitsprobleme auferlegen, wie es ist. Eine andere Alternative könnte sein, define zu verwenden, um das Tippen zu minimieren (auch ziemlich hässlich):

%Vor%

und dann den Befehl wie folgt ausführen:

%Vor%     
Alex 26.12.2014, 23:38
quelle

2 Antworten

16

Es ist ein wenig hässlich, aber eine Folge von durch Kommas getrennten Ausdrücken in Klammern kann als einzelnes Argument behandelt werden.

Ein Beispiel:

%Vor%

Die Ausgabe:

%Vor%

Beachten Sie, dass dies zusätzliche Klammern im Aufruf erfordert.

    
Keith Thompson 27.12.2014, 00:42
quelle
3

Hier ist eine noch hässlichere Option, aber verwendet einen einzigen Aufruf von printf:

%Vor%

usw. bis zur höchsten Anzahl von Argumenten, mit denen Sie das Makro aufrufen.

    
M.M 27.12.2014 11:42
quelle

Tags und Links