我正在尝试创建一个指向函数的指针数组,并尝试为其分配函数地址。但我得到的错误,我不知道如何继续。
我的代码
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
出错的地方
答案 0 :(得分:8)
你非常亲密......
尝试:
void (*Event_Handlers[3])();
答案 1 :(得分:3)
第一次确保声明函数指针数组时使用以下语法:
typedef void (*func_t)();
func_t EventHandlers[3];
答案 2 :(得分:0)
数组元素类型可以是函数指针,但不能是函数。
void(* Event_Handlers [3])()
将是正确答案