小端处理器内存中data的存储:每次遇到大小端都要梳理一遍,做个记录方便以后查阅。
对于大小端,位域的存储都是从低地址开始,下例中从a到c依次为bit0---->bit15。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct kk
{
unsigned short a : 3;
unsigned short b : 8;
unsigned short c : 5;
} kk_t;
int main(void)
{
unsigned short data = 0x3456;
memcpy(&kk_t, &data, sizeof(data));
printf("a = %x, b = %x, c = %x\n", kk_t.a, kk_t.b, kk_t.c);
return 0;
}
小端处理器的运行结果:
a = 6, b = 8a, c = 6
请按任意键继续. . .
*****************************
大端处理器的运行结果:
a = 1, b = a2, c = 16
小端处理器内存中data的存储:
*****************************
大端处理器内存中data的存储:
下图展示了内存中的位分布情况: