码迷,mamicode.com
首页 > 编程语言 > 详细

利用结构体数组调用函数

时间:2015-02-06 12:55:33      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

    我们一直知道,函数名其实就是个指针,指向这个函数的地址,因此我们调用函数其实就是让CPU去函数名指向的地址取代码来执行而已。这才有这个利用数组去调用函数的效果。

    因为写程序过程中,需要根据菜单选项来决定调用那个模块函数,不想采用switch判断,想把函数地址存在一个数组里面,然后直接调用,感觉这样代码会更简单些,因为工作中见过别人的代码也是这样写的,

但是没有实际操作过,这次正好有小机会就想试试,还没一次成功,试了两次才搞定,囧,特意记下笔记提醒自己,也给有需要的新手一起分享下

typedef int (*TEST_HANDLER_f)(void);  //void 可以根据需要改成你需要的参数

struct Factory_test_list_t
{
    //const char* name;
    //const char* param;   //若你设定的func需要参数,该处就增加参数类型就好
    TEST_HANDLER_f func;
};

static struct test_list_t test_lists[] =
{
    {FactoryTest_Fun1},
    {FactoryTest_Fun2},
    {FactoryTest_Fun3},
};

test_lists[nSelectNum].func();  //注意调用时需要跟调用函数一样,func();当初就是这里我直接
                                            //test_lists[nSelectNum].func,导致不成功,找了半天错误

 

利用结构体数组调用函数

标签:

原文地址:http://www.cnblogs.com/huiqiaoIT/p/4276599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!