位域的使用,可以提高位操作效率,避免易错的位操作出现:
看如下栗子:
/*************************************************************************
> File Name: bitarea.c
> Author: XXDK
> Email: v.manstein@qq.com
> Created Time: Mon 06 Mar 2017 01:15:15 AM PST
************************************************************************/
#include<stdio.h>
struct bitarea {
char a:4;
char b:2;
char c:2;
};
int main()
{
struct bitarea opt;
int val = 0;
opt.a = 0xa;
opt.b = 0x3;
opt.c = 0x2;
val = *(int*)&opt;
printf("val = %#x", val);
}
这样,我们可以直接对感兴趣的位段进行操作,比起移位更为直观,而且不容易出错。