我有以下功能
unsigned char foo(unsigned char(*fun[])(unsigned char *))
如何将参数传递给此函数?
答案 0 :(得分:1)
该函数原型声明一个函数,该函数将参数作为函数指针的arraay。每个函数指针必须具有类型unsigned char function_name(unsigned char *)
例如,您可以这样做:(更改了传递的语句以简化示例)
#include <stdio.h>
unsigned char dummy(char *dummypar)
{
printf("Dummy: %s\n", dummypar);
return 0;
}
unsigned char dummy2(char *dummypar)
{
printf("Dummy2: %s\n", dummypar);
return 0;
}
unsigned char foo(unsigned char(*fun[])(char *))
{
char *test = "test";
size_t i = 0;
while (fun[i] != NULL)
{
fun[i](test);
i++;
}
return 0;
}
unsigned char(*array[])(char *) = { dummy, dummy2, NULL };
int main ( void )
{
foo(array);
}