填充指向 C 中另一个函数中的函数的指针数组
fill an array of pointers to functions in another function in C
我试图在另一个函数中填充指向函数的指针数组,但我不知道该怎么做。
下面是我填充数组的函数
void* fill_tab_f(void (***tab_f))
{
*tab_f[0] = ft_pt_char;
*tab_f[1] = ft_pt_str;
*tab_f[2] = ft_pt_ptr;
*tab_f[3] = ft_pt_int;
*tab_f[4] = ft_pt_int;
*tab_f[5] = ft_pt_un_int;
*tab_f[6] = ft_pt_hexa_min;
*tab_f[7] = ft_pt_hexa_maj;
return NULL;
}
下面声明了函数指针数组和调用函数来填充我的数组。
void(*tab_f[8])(va_list *, Variable*);
fill_tab_f(&tab_f);
感谢您的回答。
你太复杂了
typedef int variable ;
void fill_tab_f(void (*tab_f[])(va_list *, variable *))
{
tab_f[0] = ft_pt_char;
tab_f[1] = ft_pt_str;
tab_f[2] = ft_pt_ptr;
tab_f[3] = ft_pt_int;
tab_f[4] = ft_pt_int;
tab_f[5] = ft_pt_un_int;
tab_f[6] = ft_pt_hexa_min;
tab_f[7] = ft_pt_hexa_maj;
}
或者如果函数指针语法对您来说有点奇怪:
typedef int variable ;
typedef void (*funcptr)(va_list *, variable *);
void fill_tab_f(funcptr *tab_f)
{
tab_f[0] = ft_pt_char;
tab_f[1] = ft_pt_str;
tab_f[2] = ft_pt_ptr;
tab_f[3] = ft_pt_int;
tab_f[4] = ft_pt_int;
tab_f[5] = ft_pt_un_int;
tab_f[6] = ft_pt_hexa_min;
tab_f[7] = ft_pt_hexa_maj;
}
我试图在另一个函数中填充指向函数的指针数组,但我不知道该怎么做。
下面是我填充数组的函数
void* fill_tab_f(void (***tab_f))
{
*tab_f[0] = ft_pt_char;
*tab_f[1] = ft_pt_str;
*tab_f[2] = ft_pt_ptr;
*tab_f[3] = ft_pt_int;
*tab_f[4] = ft_pt_int;
*tab_f[5] = ft_pt_un_int;
*tab_f[6] = ft_pt_hexa_min;
*tab_f[7] = ft_pt_hexa_maj;
return NULL;
}
下面声明了函数指针数组和调用函数来填充我的数组。
void(*tab_f[8])(va_list *, Variable*);
fill_tab_f(&tab_f);
感谢您的回答。
你太复杂了
typedef int variable ;
void fill_tab_f(void (*tab_f[])(va_list *, variable *))
{
tab_f[0] = ft_pt_char;
tab_f[1] = ft_pt_str;
tab_f[2] = ft_pt_ptr;
tab_f[3] = ft_pt_int;
tab_f[4] = ft_pt_int;
tab_f[5] = ft_pt_un_int;
tab_f[6] = ft_pt_hexa_min;
tab_f[7] = ft_pt_hexa_maj;
}
或者如果函数指针语法对您来说有点奇怪:
typedef int variable ;
typedef void (*funcptr)(va_list *, variable *);
void fill_tab_f(funcptr *tab_f)
{
tab_f[0] = ft_pt_char;
tab_f[1] = ft_pt_str;
tab_f[2] = ft_pt_ptr;
tab_f[3] = ft_pt_int;
tab_f[4] = ft_pt_int;
tab_f[5] = ft_pt_un_int;
tab_f[6] = ft_pt_hexa_min;
tab_f[7] = ft_pt_hexa_maj;
}