C语言实现查表跳转程序.可以采用状态机如
switch(state)
{
case1:state_fuc();break;
case2:state_fuc();break;
.........
也可以用if...elseif......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
};
voidmain()
{
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)();调用