函数声明和赋值问题的数组

时间:2011-06-08 05:53:39

标签: c pointers

我正在尝试创建一个指向函数的指针数组,并尝试为其分配函数地址。但我得到的错误,我不知道如何继续。

我的代码

void (*Event_Handlers)[3]();  //Line no 10

/* Queue, Drop and Send_back have been defined. for eg */
void Queue()
{
....
}

Event_Handlers[0]=Queue;  // Line 35
Event_Handlers[1]=Drop;   // Line 36
Event_Handlers[2]=Send_Back;   // Line 37

但是我收到以下错误

 fsm.c:10: error: declaration of âEvent_Handlersâ as array of functions

 fsm.c:35: warning: data definition has no type or storage class

 fsm.c:35: error: invalid initializer

 fsm.c:36: warning: data definition has no type or storage class

 fsm.c:36: error: invalid initializer

 fsm.c:37: warning: data definition has no type or storage class

 fsm.c:37: error: invalid initializer

出错的地方

3 个答案:

答案 0 :(得分:8)

你非常亲密......

尝试:

void (*Event_Handlers[3])(); 

答案 1 :(得分:3)

第一次确保声明函数指针数组时使用以下语法:

typedef void (*func_t)();
func_t EventHandlers[3];

答案 2 :(得分:0)

数组元素类型可以是函数指针,但不能是函数。

void(* Event_Handlers [3])()

将是正确答案