Funktionsname über Makro zusammenbasteln
-
Ich möchte Funktionen FUN01 FUN02 FUN03 usw über ein Makro aufrufen.
Wie bekomme ich das hin?Es geht darum, dass dieses Makro irgendwie rafft, dass es zu "FUN" den Parameter NR hinzugesellen soll. So klappt es aber nicht :
#define GETFUN(NR) FUN(NR)
so auch nicht:
#define GETFUN(NR) FUN NR
Wie also ?
thx
-
#define GETFUN(NR) FUN ## NR
-
Jo danke, aber so wie ich es wollte klappt es wohl nicht, nun trägt der den Variablennamen als String da ein, aber anders ist es beim Makro wohl auch nicht möglich, hab da wohl falsch gedacht.
verstehst du, so:
int nr;
nr=1;
GETFUN(nr)();
klappt nich
-
das ginge nur wenn 'nr' konstant ist und schon zur compilezeit feststeht. Ansonsten mit einem array von funktionszeigern:
void(*func[])() = { func1, func2, func3 }; func[nr]();