C语言的编写方法
1、函数表调用
#include <stdio.h>
typedef unsigned char bool;
#define true 1
#define false 0
typedef struct
{
bool RunSta;
void (*func)(void);
}StFunc;
void Function1()
{
printf("function 1\r\n");
return;
}
void Function2()
{
printf("function 2\r\n");
return;
}
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)
{
FuncTab[i].func();
}
}
return 0;
}
使用函数查表调用的方法的好处
1、可以后续使用事件调用,当某一些事件触发时,就调用函数表中的函数
2、代码整洁,从调用表中就可以看出需要调用那些函数
3、用于中断处理,在中断中改变状态为,并在中断外调用函数处理