小端

先定义的位域占用字节低位

1
2
3
4
struct {
uint8_t a:4;
uint8_t b:4;
} Bit;

内存中:

1
2
xxxx xxxx
b a

测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdint.h>

struct {
uint8_t a:4; /**< 低4位 */
uint8_t b:4; /**< 高4位 */
} Bit;

int main()
{

Bit.a = 0x0;
Bit.b = 0xf;

printf("Bit:%#x\n", Bit);
printf("address:%x\n", (char*)&Bit);

return 0;
}

输出:

1
2
Bit:0xf0
address:4063f0

留言

2015-01-06