C ist eine statisch typisierte Sprache, was bedeutet, dass Funktionen und ihr Verhalten zur Kompilierzeit bekannt sein müssen. Wenn du dynamisches Verhalten in C erreichen möchtest, könntest du Funktionzeiger (Function Pointers) in Betracht ziehen. Ein Funktionzeiger ist eine Variable, die auf die Adresse einer Funktion zeigt.
#include <stdio.h>
void a(const char *text)
{
printf("a Funktion: %s\n", text);
}
void b(const char *text)
{
printf("b Funktion: %s\n", text);
}
int main()
{
char *str = "Hallo Welt";
void (*f)(const char *);
f = a;
f(str);
f = b;
f(str);
return 0;
}