机器人车技术开发分享网
单片机c语言中菜单系统源码分析-const定义结构体数组初始化
  • 首页 > 单片机c语言
  • 作者:小v
  • 2015年1月22日 15:26 星期四
  • 浏览:3510
  • 字号:
  • 评论:0
  • 最近在学习单片机的菜单系统时,发现有这么一些代码,定义了4个按键,确认键,返回键,上键,下键,先贴出来在vc里边建的,先定义一个结构体KbdTabStruct,在用结构体定义一个const型的数组KBD[],那么数组的每一个成员对应的原本结构体的数则是它的初始化值,并且这个值初始化后就成立,以后不再改变。比如说KBD[0].KeyCurrentIndex所对应的则是数组table中成员0 的值,这些值就是它的初始化值,相当于KBD[0].KeyCurrentIndex=0,但如果这样写N层的菜单,如此定义肯定麻烦,所以用这样的数组实现。

    int main()
    {
    typedef struct
    {
      u8 KeyCurrentIndex;//当前状态索引号
      u8 KeyEnterState;//按下【enter】键时转向的索引号
      u8 KeyCancelState;//按下【cancel】键时转向的索引号
      u8 KeyUpState;//按下【up】键时转向的索引号
      u8 KeyDownState;//按下【down】键时转向的索引号
      void (*CurrentOperate)(); //当前状态下执行的功能操作
    }KbdTabStruct;

    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\r\n",KBD[0].KeyCurrentIndex);
     printf("%d\r\n",KBD[0].KeyEnterState);
     printf("%d\r\n",KBD[0].KeyCancelState);
     printf("%d\r\n",KBD[0].KeyUpState);
     printf("%d\r\n",KBD[0].KeyDownState);
     printf("%d\r\n",KBD[1].KeyCurrentIndex);
     printf("%d\r\n",KBD[1].KeyEnterState);
     printf("%d\r\n",KBD[1].KeyCancelState);
     printf("%d\r\n",KBD[1].KeyUpState);
     printf("%d\r\n",KBD[1].KeyDownState);
        printf("%5s\r\n",KBD[0].CurrentOperate);

     }

    1.jpg

      您阅读这篇文章共花了:  
    二维码加载中...
    本文作者:小v      文章标题: 单片机c语言中菜单系统源码分析-const定义结构体数组初始化
    本文地址:http://blog.cvosrobot.com/?post=70
    版权声明:若无注明,本文皆为“机器人车技术开发分享网”原创,转载请保留文章出处。

    返回顶部| 首页| 手气不错| 捐赠支持| 自定义链接| 自定义链接| 自定义链接| 手机版本|后花园

    Copyright © 2014-2017 机器人车技术开发分享网   京ICP备14059411 Copyright 2014-2019 小v工作室 版权所有 All Rights Reserved

    sitemap