Hallo Leute, ich hätte da mal eine Frage...


angenommen ich hätte eine Liste mit Pointern auf unterschiedlichste Funktionen, wobei zusätzlich noch Informationen über die jeweilige Anzahl an Parametern (und ggf. deren Typen) vorhanden ist. Und jetzt möchte ich gerne eine dieser Funktionen ausführen, wobei die Parameter wiederum in irgendeiner anderen Liste stehen.

Ich stelle mir das etwa so vor:
Code:
typedef struct
{
	void* pFunc;
	char* name;
	uint8_t num_args;
} type_func;

type_func Funclist[] = 
{
	{fptr1, "Funktion_1", 0},
	{fptr2, "Funktion_2", 3},
	{fptr3, "Funktion_3", 1},
	etc, etc, etc...
};

int8_t execute_function(type_func* pFunction, void* args)
{
	???
}
falls ich Funktion_2 ausführen möchte würde ich execute_function also das entsprechende Element meiner Funktionsliste übergeben, sowie die zu verwendenden Parameter (die wiederum in einer verketteten Liste gespeichert sein könnten, oder sonst irgendwie).


Ziel der Aktion: ich möchte auf der Konsole "Funktion_2(1, 2, 3) <Enter>" eingeben können, woraufhin ein Parser zunächst den eingegebenen Text als Funktionsaufruf erkennt, die Parameter extrahiert, und schließlich die zugehörige Funktion mit den passenden Parametern aufruft.



Das muss doch irgendwie machbar sein...
stdarg.h spukt mir dazu im Kopf rum, aber ich bin nicht sicher ob und wie ich das für mein Problem nutzen kann.

Was meint ihr dazu?