结构体定义函数指针的使用

下面的例子很好的说明了结构体函数指针的用法。

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
 
#define ARRAY_SIZE(x)    (sizeof(x)/sizeof(x[0]))

typedef struct{
    int funCode;
    void (*func)(int *data);
}FUNC;

static void get_para1(int *data)
{
     printf("initialization1...\n");  
}
static void get_para2(int *data)
{
     printf("initialization2...\n");  
}

static void get_para3(int *data)
{
     printf("initialization3...\n");  
}
static void get_para4(int *data)
{
     printf("initialization4...\n");  
}

static void get_para5(int *data)
{
     printf("initialization5...\n");  
}
static void get_para6(int *data)
{
     printf("initialization6...\n");  
}

static FUNC funcpara[]={
    {0x01, get_para1},
    {0x02, get_para2},
    {0x03, get_para3},
    {0x04, get_para4},
    {0x05, get_para5},
    {0x06, get_para6},
    {0x07, NULL},
};

int main()  
{  
        int nr;
        //int *data = NULL;
        int data[10]={0};
        printf("请输入数字:\n");
        scanf("%d",&data); 

        for(nr=0; nr<ARRAY_SIZE(funcpara); nr++){
        if(funcpara[nr].funCode == data[0]){
            if(funcpara[nr].func){
                funcpara[nr].func(data);
            }
        }
    }
     return 0;  
}

在VS2012中敲入上面代码,按住“ctrl” + F5,结果如下所示。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值