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

posted @ 2021-01-29 18:36  子诫  阅读(396)  评论(0编辑  收藏  举报