结构体变量定义,初始化问题

abnerle 2010-11-10 11:00:49
结构体定义如下:
struct key_pad_vaule
{
UTF16_T key_pad_MENU[32];
UTF16_T key_pad_VOL_UP[32];
UTF16_T key_pad_VOL_DOWN[32];
UTF16_T key_pad_PRO_UP[32];
UTF16_T key_pad_PRO_DOWN[32];
UTF16_T key_pad_INPUT[32];
};
初始化如下
static struct key_pad_vaule key_pad_button_vaule={
.key_pad_MENU[32] = {0x004D, 0x0045, 0x004E, 0x0055, 0};
.key_pad_VOL_UP[32] = {0x0056, 0x004F, 0x004C, 0x0020, 0x0055, 0x0050, 0};
.key_pad_VOL_DOWN[32] = {0x0056, 0x004F, 0x004C, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0};
.key_pad_PRO_UP[32] = {0x0043, 0x0048, 0x0020, 0x0020, 0x0055, 0x0050, 0};
.key_pad_PRO_DOWN[32] = {0x0043, 0x0048, 0x0020, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0};
.key_pad_INPUT[32] = {0x0049, 0x004E, 0x0050, 0x0055, 0x0054, 0};
};
GUN C编译器提示,.key_pad_MENU[32],下标超出范围,但是我下标是32,只有5个元素啊,怎么会超出呢???
...全文
214 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
至善者善之敌 2010-11-10
  • 打赏
  • 举报
回复
扫盲吧,什么是C99?
abnerle 2010-11-10
  • 打赏
  • 举报
回复
刚刚试了一下,这样是对的
{
.key_pad_MENU = {0x004D, 0x0045, 0x004E, 0x0055, 0},
.key_pad_VOL_UP = {0x0056, 0x004F, 0x004C, 0x0020, 0x0055, 0x0050, 0},
.key_pad_VOL_DOWN = {0x0056, 0x004F, 0x004C, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0},
.key_pad_PRO_UP = {0x0043, 0x0048, 0x0020, 0x0020, 0x0055, 0x0050, 0},
.key_pad_PRO_DOWN = {0x0043, 0x0048, 0x0020, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0},
.key_pad_INPUT = {0x0049, 0x004E, 0x0050, 0x0055, 0x0054, 0},
};
nwysb19860215 2010-11-10
  • 打赏
  • 举报
回复
,.key_pad_MENU[32],
加下标是不是有点第32个元素的嫌疑?就像数组的复制一样,不可能第某个元素初始化4、5个值
bobo364 2010-11-10
  • 打赏
  • 举报
回复
我也认为是这样正确
static struct key_pad_vaule key_pad_button_vaule={
.key_pad_MENU = {0x004D, 0x0045, 0x004E, 0x0055, 0};
.key_pad_VOL_UP = {0x0056, 0x004F, 0x004C, 0x0020, 0x0055, 0x0050, 0};
.key_pad_VOL_DOWN = {0x0056, 0x004F, 0x004C, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0};
.key_pad_PRO_UP = {0x0043, 0x0048, 0x0020, 0x0020, 0x0055, 0x0050, 0};
.key_pad_PRO_DOWN = {0x0043, 0x0048, 0x0020, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0};
.key_pad_INPUT = {0x0049, 0x004E, 0x0050, 0x0055, 0x0054, 0};
};

abnerle 2010-11-10
  • 打赏
  • 举报
回复
{0x0043, 0x0048, 0x0020, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0},

{0x0049, 0x004E, 0x0050, 0x0055, 0x0054, 0}
};

{0x0049, 0x004E, 0x0050, 0x0055, 0x0054, 0}没有,结尾?
zhutianjin4355255 2010-11-10
  • 打赏
  • 举报
回复
static struct key_pad_vaule key_pad_button_vaule=
{
{0x004D, 0x0045, 0x004E, 0x0055, 0},

{0x0056, 0x004F, 0x004C, 0x0020, 0x0055, 0x0050, 0},

{0x0056, 0x004F, 0x004C, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0},

{0x0043, 0x0048, 0x0020, 0x0020, 0x0055, 0x0050, 0},

{0x0043, 0x0048, 0x0020, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0},

{0x0049, 0x004E, 0x0050, 0x0055, 0x0054, 0}
};
ouyh12345 2010-11-10
  • 打赏
  • 举报
回复
确实没见过
zenny_chen 2010-11-10
  • 打赏
  • 举报
回复
呵呵,看来1楼还没见识过C99的威力。
zenny_chen 2010-11-10
  • 打赏
  • 举报
回复
确实错了。你应该这么写:

static struct key_pad_vaule key_pad_button_vaule={
.key_pad_MENU = {0x004D, 0x0045, 0x004E, 0x0055, 0};
.key_pad_VOL_UP = {0x0056, 0x004F, 0x004C, 0x0020, 0x0055, 0x0050, 0};
.key_pad_VOL_DOWN = {0x0056, 0x004F, 0x004C, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0};
.key_pad_PRO_UP = {0x0043, 0x0048, 0x0020, 0x0020, 0x0055, 0x0050, 0};
.key_pad_PRO_DOWN = {0x0043, 0x0048, 0x0020, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0};
.key_pad_INPUT = {0x0049, 0x004E, 0x0050, 0x0055, 0x0054, 0};
};
ouyh12345 2010-11-10
  • 打赏
  • 举报
回复
想当然了

static struct key_pad_vaule key_pad_button_vaule={
{0x004D, 0x0045, 0x004E, 0x0055, 0},
{0x0056, 0x004F, 0x004C, 0x0020, 0x0055, 0x0050, 0},
{0x0056, 0x004F, 0x004C, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0},
0x0043, 0x0048, 0x0020, 0x0020, 0x0055, 0x0050, 0},
{0x0043, 0x0048, 0x0020, 0x0020, 0x0044, 0x004F, 0x0057, 0x004E,0},
{0x0049, 0x004E, 0x0050, 0x0055, 0x0054, 0}
};
东大坡居士 2010-11-10
  • 打赏
  • 举报
回复
长见识了,这样也可以
Metrosexual 2010-11-10
  • 打赏
  • 举报
回复
啊,还是看看书

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧