如何初始化指向函数的指针数组?
问题描述:
我有以下代码:如何初始化指向函数的指针数组?
typedef int (*t_Function) (int x);
t_Function Functions[MAX_FUNCTIONS];
int f(int x)
{
return 0;
}
但我不能正确初始化。如果我添加以下行:
Functions[0] = f;
那么编译器会生成以下错误:
prog.c:217: warning: data definition has no type or storage class
prog.c:217: error: conflicting types for Functions
如何初始化数组函数指针?
答
你要么做一个函数,其中Functions[0] = f;
工作正常,或与数组初始化中:
t_Function Functions[MAX_FUNCTIONS] = {f};
对于这项工作,f
(你在Functions
希望所有功能)必须声明在这个定义出现的地方。请注意,Functions
的所有其他MAX_FUNCTIONS-1
元素将自动为NULL
,前提是其中至少有一个元素是以这种方式填充的。
是的,我已经找到它了。我在一个函数中做。谢谢! – psihodelia 2011-03-04 10:06:30