当前位置: 代码迷 >> 单片机 >> 结构体数组成员的初始化,该怎么解决
  详细解决方案

结构体数组成员的初始化,该怎么解决

热度:149   发布时间:2016-04-28 14:51:42.0
结构体数组成员的初始化
本帖最后由 woshi_ziyu 于 2014-10-15 10:26:47 编辑

typedef struct{
u8 index_current;
u8 top_up_index;
u8 bottom_down_index;
u8 index_lcd[6]
void (*KEY_Current)(void);
void (*Current_Operate)(u32 dat);
}index_code;

index_code menu[1]={0,0,0,{0,0,0,0,0,0},KEY_Scan,LCD_DISPLAY_DATA};

我定义了结构体数组,编译出错,我看网上很多资料,结构体数组成员基本上都是定义字符串的,我这边加了{ }。是不是意味着我定义的结构体数组长度就是2了,也就是index_code menu[2],很费解。

如果这样子,那么我初始化数组成员是不是要这样做

menu[0].index_lcd[0]=0;
-------------------
menu[0].index_lcd[5]=0;


这是使用在菜单程序中,也就是人机界面上面的,通过扫描按键,我个人的思路是通过跟踪按键进入子菜单,每个子菜单都是一个死循环,只有按了退出键才能跳出,不知道有没有好的建议。
------解决思路----------------------
引用:
Quote: 引用:

index_code menu[1]={0,0,0,{0,0,0,0,0,0},KEY_Scan,LCD_DISPLAY_DATA};

改成
index_code menu={0,0,0,{0,0,0,0,0,0},KEY_Scan,LCD_DISPLAY_DATA};


跳出警告了

C(39): warning C182: pointer to different objects


后面引用的有问题


index_code menu[2]={{0,0,0,{0,0,0,0,0,0},KEY_Scan,LCD_DISPLAY_DATA}};
  相关解决方案