位域的使用

简介: 位域的使用。

位域的使用
位域的使用和结构成员的使用相同,其一般形式为:
位域变量名.位域名
位域变量名->位域名
位域允许用各种格式输出。

请看下面的实例:

实例

include

int main(){
struct bs{
unsigned a:1;
unsigned b:3;
unsigned c:4;
} bit,pbit;
bit.a=1; /
给位域赋值(应注意赋值不能超过该位域的允许范围) /
bit.b=7; /
给位域赋值(应注意赋值不能超过该位域的允许范围) /
bit.c=15; /
给位域赋值(应注意赋值不能超过该位域的允许范围) /
printf("%d,%d,%d\n",bit.a,bit.b,bit.c); /
以整型量格式输出三个域的内容 /
pbit=&bit; /
把位域变量 bit 的地址送给指针变量 pbit /
pbit->a=0; /
用指针方式给位域 a 重新赋值,赋为 0 /
pbit->b&=3; /
使用了复合的位运算符 "&=",相当于:pbit->b=pbit->b&3,位域 b 中原有值为 7,与 3 作按位与运算的结果为 3(111&011=011,十进制值为 3) /
pbit->c|=1; /
使用了复合位运算符"|=",相当于:pbit->c=pbit->c|1,其结果为 15 /
printf("%d,%d,%d\n",pbit->a,pbit->b,pbit->c); /
用指针方式输出了这三个域的值 */
}

目录
相关文章
|
存储 程序员 C语言
结构体,联合体与位段
结构体,联合体与位段
58 0
|
6月前
|
编译器 C++
内存对齐与内存开辟。结构体(struct),位段,枚举类型(enum),联合体(union)。
内存对齐与内存开辟。结构体(struct),位段,枚举类型(enum),联合体(union)
36 1
|
6月前
|
存储 网络协议 编译器
c位域
c位域
57 0
|
6月前
|
存储 数据安全/隐私保护 C语言
位域
位域
43 0
|
6月前
|
存储 C语言
位域声明
【2月更文挑战第12天】位域声明。
26 1
|
6月前
|
存储
联合体和结构体对齐
联合体和结构体对齐
|
6月前
|
存储 编译器 C语言
自定义类型:结构体(自引用、内存对齐、位段(位域))
自定义类型:结构体(自引用、内存对齐、位段(位域))
|
6月前
|
存储 编译器 C语言
结构体的内存对齐与位段
当我们描述一个人的年龄时我们可以使用,int age = 18;但是如果我们要描述一个人呢?很显然我们无法仅靠一个age就实现对一个人的描述,所以就有了结构体,在结构体中我们可以包含多种类型的数据,这样就可以实现对一个人的描述比如身高、爱好、体重等等
|
11月前
|
编译器 C++
结构体、枚举、位段、联合体详解
结构体、枚举、位段、联合体详解
66 0
|
存储 编译器 C语言
结构体对齐+联合体+位段
结构体对齐+联合体+位段
107 1