Если вы хотите написать функцию со строкой формата и переменными аргументами, такими как:
int function(const char* strFormat, ... )
{
//parse out the format using regex or something
//then store the data into the variable aruments
//or create a string concatenating everything
}
как, скажем, printf, sprintf или scanf,
тогда лучшее, что вам нужно сделать, - это посмотреть несколько хороших уроков.
http://msdn.microsoft.com/en-us/library/fxhdxye9(v=vs.80).aspx
http://www.cprogramming.com/tutorial/c/lesson17.html
Если вы действительно хотите передать имя функции для вызываемой функции вместе с ее аргументами, вам нужно либо реализовать некоторую форму отражения или самоанализа в своем коде c, действительно сложный оператор switch, который вызывает функции для вы основаны на строковом значении или пишете несколько сложных макросов, чтобы действовать как своего рода вторичный
компилятор.
объект glib - отличный пример самоанализа в c.
http://developer.gnome.org/gobject/stable/
что-то простое без самоанализа может быть:
void* function (const char* strFunctionName, ... )
{
if(!strcmp(strFunctionName, "functionA"))
{
//use va_list to parse out the arguments for the function.
functionA(//each of the arguments from va_list);
}
else if(!strcmp(strFunctionName, "functionB"))
{
//use va_list to parse out the arguments for the function.
functionB(//args from va_list);
}
...
}
Если у вас есть что-то более конкретное, укажите в своем вопросе.