Wie kann ich zweimal mit dem C-Präprozessor verketten und ein Makro wie in „arg ## _ ## MACRO“ erweitern?
Ich versuche ein Programm zu schreiben, in dem die Namen einiger Funktionen vom Wert einer bestimmten Makrovariablen abhängen.
#define VARIABLE 3
#define NAME(fun) fun ## _ ## VARIABLE
int NAME(some_function)(int a);
Leider hat das MakroNAME()
macht das zu
int some_function_VARIABLE(int a);
eher, als
int some_function_3(int a);
Das ist eindeutig der falsche Weg. Glücklicherweise ist die Anzahl der möglichen Werte für VARIABLE gering, so dass ich einfach eine machen kann#if VARIABLE == n
und listen Sie alle Fälle getrennt auf, aber ich habe mich gefragt, ob es eine clevere Möglichkeit gibt, dies zu tun.