keil C51结构体二维数组赋值问题
本帖最后由 kq851211 于 2021-11-6 13:57 编辑请问谁遇到过这种问题吗?
我定义了个结构体数组,StruMicMode code tb_mic_mode,结构体定义为
typedef struct
{
u8 flag;
u8 freq;
u16 t_act;
u16 t_int;
}StruMicMode;
将这二维数组是4*10大小,并存储到ROM中。数组tb_mic_mode
并未填满10时,未填部分keil并不是填充为0,而是将
tb_mic_mode的数据直接填充到其后。
反正要初始化后使用。不影响吧。 本帖最后由 ayb_ice 于 2021-11-9 10:45 编辑
被优化了吧 有可能就是被优化掉了,你加Volatile申明试试 xyz549040622 发表于 2021-11-12 16:47
有可能就是被优化掉了,你加Volatile申明试试
没用的,试过加Volatile,也在keil里修改了优化级别,还是一样 fpgamcudsp 发表于 2021-11-9 10:16
反正要初始化后使用。不影响吧。
实际的值跟我程序里设置的值不一样呀 这个问题很怪,有可能是因为溢出,比如某些地方的内存定义重合了,后面的会冲掉前面的。 这个是不是个显示的问题,实际编译后的文件还是会默认不初始化的,都是0xff。
页:
[1]