新聞中心

        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ù)組實(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://www.104case.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)閉
        主站蜘蛛池模板: 乌拉特前旗| 齐河县| 吉首市| 汤原县| 上林县| 得荣县| 新乡市| 海门市| 乌兰县| 神农架林区| 朔州市| 那坡县| 乐至县| 循化| 江永县| 桃园县| 西乌珠穆沁旗| 合江县| 北辰区| 福海县| 酉阳| 马鞍山市| 龙口市| 万年县| 闽清县| 通道| 视频| 佳木斯市| 喀喇沁旗| 锡林郭勒盟| 灯塔市| 古浪县| 罗定市| 大名县| 道孚县| 高碑店市| 六盘水市| 桐庐县| 洛宁县| 宕昌县| 灵寿县|