C语言实现查表跳转程序.可以采用状态机如
switch(state)
{
case 1:state_fuc();break;
case 2:state_fuc();break;
.........
也可以用if ...else if ......else .....
除了用switch或if判断,还有汇编那种goto
下面这种采用函数指针的办法.如下
void(*key_list[16])()={
key_zero,
key_one,
key_two,
key_three,
key_four,
key_five,
key_six,
key_seven, (这些是函数名)
key_eight,
key_nine,
key_ten,
key_eleven,
key_twelve,
key_thirteen,
key_fourteen,
key_fifteen
};
void main()
{
void(*fp)();
delay(10);
write_com(0x01);
delay(15);
write_com(0xc);
lcd_home();
while(1)
{
if(key_press())
{ delay(100);
fp=key_list[key_scan()];
(*fp)();
delay(1200);
}
}
//----------------------------------
fp=key_list[key_scan()]; 直接把指针传给fp
(*fp)(); 调用