C語(yǔ)言實(shí)現(xiàn)函數(shù)查表跳轉(zhuǎn)程序
C語(yǔ)言實(shí)現(xiàn)查表跳轉(zhuǎn)程序.可以采用狀態(tài)機(jī)如
switch(state)
{
case1:state_fuc();break;
case2:state_fuc();break;
.........
也可以用if...elseif......else.....
除了用switch或if判斷,還有匯編那種goto
下面這種采用函數(shù)指針的辦法.如下
void(*key_list[16])()={
key_zero,
key_one,
key_two,
key_three,
key_four,
key_five,
key_six,
key_seven,(這些是函數(shù)名)
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)();調(diào)用
來(lái)源:角色1次