C语言中使用函数指针定义结构体成员变量
- 定义:
int func_0(int argv, char **argc);
int func_1(int argv, char **argc);
int func_2(int argv, char **argc);
typedef int (*pFUNC)(int argv, char **argc);
pFUNC func_array[] = {func_0, func_1, func_2};
enum FUNC_CODE
{
FUNC_0 = 0,
FUNC_1,
FUNC_2,
FUN_NUM
};
int func_0(int argv, char **argc)
{
/* statements */
}
int func_1(int argc, char **argv)
{
/* statements */
}
int func_2(int argv, char **argc)
{
/* statements */
}
- 使用:
func_array[FUNC_CODE](argc, argon);
Ps:在func_array[]中,FUNC_PARAM_t.func_ptr可以直接直接使用函数名称(就如同上示例子中所使用的方式一样),也可以使用
& + 函数名称
的方式,即&func_0
。