union联合体及大小端模式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/fengweibo112/article/details/90521308

概念

大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中。
口诀:大相反(低位存高位),小相同(低位存低位)

举例

32位宽的数0x12345678在小端模式CPU内存中的存放方式(假设从地址0x4000开始存放)
在这里插入图片描述

在union中的影响

typedef union  
{    
  uint32_t word;   
  uint8_t byte[4]; 
 }union_Type;
 int main(void)
 { 
  union_Type test; 
  test.word = 0x12345678; 
  printf("%x %x %x %x\n",test.byte[0],test.byte[1],test.byte[2],test.byte[3]);
 }

小端模式下的结果:78 56 34 12
大端模式下的结果:12 34 56 78

猜你喜欢

转载自blog.csdn.net/fengweibo112/article/details/90521308
今日推荐