新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)c語言中菜單系統(tǒng)源碼分析

單片機(jī)c語言中菜單系統(tǒng)源碼分析

作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
最近在學(xué)習(xí)單片機(jī)菜單系統(tǒng)時,發(fā)現(xiàn)有這么一些代碼,定義了4個按鍵,確認(rèn)鍵,返回鍵,上鍵,下鍵,先貼出來在vc里邊建的,先定義一個結(jié)構(gòu)體KbdTabStruct,在用結(jié)構(gòu)體定義一個const型的數(shù)組KBD[],那么數(shù)組的每一個成員對應(yīng)的原本結(jié)構(gòu)體的數(shù)則是它的初始化值,并且這個值初始化后就成立,以后不再改變。比如說KBD[0].KeyCurrentIndex所對應(yīng)的則是數(shù)組table中成員0 的值,這些值就是它的初始化值,相當(dāng)于KBD[0].KeyCurrentIndex=0,但如果這樣寫N層的菜單,如此定義肯定麻煩,所以用這樣的數(shù)組實現(xiàn)。

int main()
{
typedef struct
{
u8 KeyCurrentIndex;//當(dāng)前狀態(tài)索引號
u8 KeyEnterState;//按下【enter】鍵時轉(zhuǎn)向的索引號
u8 KeyCancelState;//按下【cancel】鍵時轉(zhuǎn)向的索引號
u8 KeyUpState;//按下【up】鍵時轉(zhuǎn)向的索引號
u8 KeyDownState;//按下【down】鍵時轉(zhuǎn)向的索引號
void (*CurrentOperate)(); //當(dāng)前狀態(tài)下執(zhí)行的功能操作
}KbdTabStruct;

本文引用地址:http://2s4d.com/article/201611/322301.htm

const KbdTabStruct KBD[]=
{
{0,1,2,3,4,(*main)},
{6,7,8,9,10,(*main)},
{0,1,2,3,4,,(*main)},
{0,1,2,3,4,(*main)},
};
printf("%d",KBD[0].KeyCurrentIndex);
printf("%d",KBD[0].KeyEnterState);
printf("%d",KBD[0].KeyCancelState);
printf("%d",KBD[0].KeyUpState);
printf("%d",KBD[0].KeyDownState);
printf("%d",KBD[1].KeyCurrentIndex);
printf("%d",KBD[1].KeyEnterState);
printf("%d",KBD[1].KeyCancelState);
printf("%d",KBD[1].KeyUpState);
printf("%d",KBD[1].KeyDownState);
printf("%5s",KBD[0].CurrentOperate);

}



評論


技術(shù)專區(qū)

關(guān)閉