最近写STM32程序,用到了共用体,由此,引发了疑问。 比如:将0x12345678存储到一个U32类型的变量里面。大端和小端分别是这样存储的。
大端存储:
低地址 …… 高地址
0x 12 34 56 78
小端存储:
低地址 …… 高地址
0x 78 56 34 12
看代码
#include "stm32f10x.h"
struct s
{
u32 a
;
u8 b
;
};
union B
{
u8 c
[5];
struct s s_1
;
};
union B BB
;
int main(void)
{
BB
.s_1
.a
=0x12345678;
BB
.s_1
.b
=0x09;
while(1);
}
输出结果:
可见,存储形式为小端存储。 日后写代码的时候,一定要注意。