在C语言中处理函数数组

5

我声明了一个函数数组:

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

然而,编译时出现错误:

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

我的声明有什么问题?如何进行更正? 我想在程序中创建一个函数数组。请给我建议。

2个回答

8

声明函数数组是不可能的。你只能声明指向函数的指针数组:

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

1
作为用户Zbynek Vyskovsky指出,你只能拥有函数指针数组。
但我也建议使用typedef使处理函数指针更容易:
typedef void* (*FunctionPtrType)(void*);  // Define type
FunctionPtrType thread_fun[100];          // Declare the array

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接