C语言中的函数数组

时间:2016-02-02 14:12:13

标签: c arrays function

我已将一系列函数声明为:

void * (thread_fun[100])(void *);

但是,编译因错误而终止:

  

错误:将'thread_fun'声明为函数数组void *   (thread_fun [])(void *);

我的声明有什么问题。而且,如何纠正它。 我想在我的程序中创建一个函数数组。建议我一个解决方案。

2 个答案:

答案 0 :(得分:8)

无法声明函数数组。您只能声明要运行的指针数组:

void * (*thread_fun[100])(void *);

答案 1 :(得分:1)

用户 Zbynek Vyskovsky 注意到,你只能拥有一系列的函数指针。

但是,我还建议您使用typedef来简化函数指针的处理:

typedef void* (*FunctionPtrType)(void*);  // Define type
FunctionPtrType thread_fun[100];          // Declare the array