久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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

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

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

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

本文引用地址:http://cqxgywz.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);

}



評論


技術專區(qū)

關閉