C语言使用函数表方法调用函数

C语言的编写方法

1、函数表调用

#include <stdio.h>

/*定义bool类型*/
typedef unsigned char bool;
#define true 1
#define false 0

/*函数结构体*/
typedef struct
{
    bool RunSta;
    void (*func)(void);
}StFunc;

/*函数1*/
void Function1()
{
    printf("function 1\r\n");
    return;
}

/*函数2*/
void Function2()
{
    printf("function 2\r\n");
    return;
}

/*函数3*/
void Function3()
{
    printf("function 3\r\n");
    return;
}
~   

函数注册,可以清晰的看出当前表注册了那些函数

/*注册的函数表*/
StFunc FuncTab[] =
{
        {true,Function1},
        {false,Function2},
        {true,Function3}
};

任务函数中就轮询当前任务需要查询调用的表

/*查表调用函数*/
int main()
{
    unsigned char i = 0;
    for(i == 0 ; i <= (sizeof(FuncTab) / sizeof(StFunc)) ; i++)
    {
        if(FuncTab[i].RunSta == true && FuncTab[i].func != NULL)
        {
            /*函数运行状态为1 且 函数部位空就调用此函数*/
            FuncTab[i].func();
        }
    }
    return 0;
}

使用函数查表调用的方法的好处

1、可以后续使用事件调用,当某一些事件触发时,就调用函数表中的函数
2、代码整洁,从调用表中就可以看出需要调用那些函数
3、用于中断处理,在中断中改变状态为,并在中断外调用函数处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值