位域的使用

简介: 位域的使用。

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

请看下面的实例:

实例

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); /
用指针方式输出了这三个域的值 */
}

目录
相关文章
|
9月前
|
存储 程序员 C语言
结构体,联合体与位段
结构体,联合体与位段
40 0
|
2月前
|
存储 网络协议 编译器
c位域
c位域
22 0
|
2月前
|
存储 数据安全/隐私保护 C语言
位域
位域
13 0
|
2月前
|
存储 编译器 C语言
自定义类型:结构体(自引用、内存对齐、位段(位域))
自定义类型:结构体(自引用、内存对齐、位段(位域))
|
2月前
|
存储 编译器 C语言
结构体的内存对齐与位段
当我们描述一个人的年龄时我们可以使用,int age = 18;但是如果我们要描述一个人呢?很显然我们无法仅靠一个age就实现对一个人的描述,所以就有了结构体,在结构体中我们可以包含多种类型的数据,这样就可以实现对一个人的描述比如身高、爱好、体重等等
|
7月前
|
编译器 C++
结构体、枚举、位段、联合体详解
结构体、枚举、位段、联合体详解
53 0
|
9月前
|
存储 编译器 C语言
C/C++之自定义类型(结构体,位段,联合体,枚举)详解
C/C++之自定义类型(结构体,位段,联合体,枚举)详解
59 0
|
11月前
|
存储 编译器 C语言
结构体对齐+联合体+位段
结构体对齐+联合体+位段
|
11月前
|
存储 C语言
自定义类型——位段,枚举,共用体(联合体)
✅<1>主页:C语言的前男友 📃<2>知识讲解:结构体,声明,变量初始化,结构体内存对齐 🔥<3>创作者:C语言的前男友 ☂️<4>开发环境:Visual Studio 2022 💬<5>前言:今天继续把剩下的自定义类型拉出来说一说。
自定义类型——位段,枚举,共用体(联合体)
|
存储 编译器 C语言
C语言自定义类型一网打尽(结构体、位段/位域、枚举、联合体)
C语言自定义类型一网打尽(结构体、位段/位域、枚举、联合体)
117 0