每次遇到大小端都要梳理一遍,做個記錄方便以後查閱。
對於大小端,位域的存儲都是從低地址開始,下例中從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
請按任意鍵繼續. . .