林楠春 发表于 2018-9-14 10:40:46

KEIL编译器的问题

定义了一个结构体,但是分配的地址不连续,是KEIL的问题还是我的问题???????

林楠春 发表于 2018-9-14 10:49:38

同一个结构体联合里面的这个就是连续的,总觉的是keil的BUG

林楠春 发表于 2018-9-14 10:57:34

如果地址不连续,就不能用指针操作了,只能用结构体名,可文档写的可以访问啊

wenyangzeng 发表于 2018-9-14 11:23:59

林楠春 发表于 2018-9-14 10:49
同一个结构体联合里面的这个就是连续的,总觉的是keil的BUG
字节对齐的问题,16位长度的变量不要与8位长度的变量交叉摆列。

toofree 发表于 2018-9-14 11:40:24

以32位对齐、对齐、对齐
重要的事情说三遍

如果数据没对齐,需要自己凑齐。
https://www.stmcu.org.cn/module/forum/forum.php?mod=redirect&goto=findpost&ptid=617422&pid=2375785&fromuid=307297

林楠春 发表于 2018-9-14 11:41:58

发现只要将4字节长度的变量定义为2字节长度的,地址就会连续,这有些限制了软件开发了,还是我写的有问题?????

林楠春 发表于 2018-9-14 11:45:32

对齐,好吧,只是要用指针操作缓冲区的话,就费劲了

す疯Ⅱ恒す 发表于 2018-9-14 11:58:15

是结构体对齐的问题啊。C语言的东西,建议好好看看这部分。

tyhjrwx2011 发表于 2018-9-14 13:03:36

基础知识学的不扎实

andeyqi 发表于 2018-9-14 13:59:55

结构体对齐的问题默认四字节补齐
页: [1] 2
查看完整版本: KEIL编译器的问题