打印
[STC单片机]

keil C51结构体二维数组赋值问题

[复制链接]
2973|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
C51, keil, ic, ST, AC, ROM
本帖最后由 kq851211 于 2021-11-6 13:57 编辑

请问谁遇到过这种问题吗?

我定义了个结构体数组,StruMicMode code tb_mic_mode[4][10],结构体定义为
typedef struct
{
u8 flag;
u8 freq;
u16 t_act;      
u16 t_int;      
}StruMicMode;

将这二维数组是4*10大小,并存储到ROM中。数组tb_mic_mode[0]
并未填满10时,未填部分keil并不是填充为0,而是将
tb_mic_mode[1]的数据直接填充到其后。

使用特权

评论回复

相关帖子

沙发
fpgamcudsp| | 2021-11-9 10:16 | 只看该作者
反正要初始化后使用。不影响吧。

使用特权

评论回复
板凳
ayb_ice| | 2021-11-9 10:43 | 只看该作者
本帖最后由 ayb_ice 于 2021-11-9 10:45 编辑

被优化了吧

使用特权

评论回复
地板
xyz549040622| | 2021-11-12 16:47 | 只看该作者
有可能就是被优化掉了,你加Volatile申明试试

使用特权

评论回复
5
kq851211|  楼主 | 2021-11-19 18:00 | 只看该作者
xyz549040622 发表于 2021-11-12 16:47
有可能就是被优化掉了,你加Volatile申明试试

没用的,试过加Volatile,也在keil里修改了优化级别,还是一样

使用特权

评论回复
6
kq851211|  楼主 | 2021-11-19 18:01 | 只看该作者
fpgamcudsp 发表于 2021-11-9 10:16
反正要初始化后使用。不影响吧。

实际的值跟我程序里设置的值不一样呀

使用特权

评论回复
7
weibo718| | 2021-11-19 20:24 | 只看该作者
这个问题很怪,有可能是因为溢出,比如某些地方的内存定义重合了,后面的会冲掉前面的。

使用特权

评论回复
8
hello、C| | 2021-11-19 21:54 | 只看该作者

使用特权

评论回复
9
elife| | 2021-11-20 20:59 | 只看该作者
这个是不是个显示的问题,实际编译后的文件还是会默认不初始化的,都是0xff。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

18

帖子

1

粉丝