搜索

[资料分享] C语言的位段应用

[复制链接]
61|9
 楼主 | 2020-10-21 21:30 | 显示全部楼层 |阅读模式
  1. void test7(void)
  2. {
  3.         typedef union
  4.         {
  5.             unsigned int allBits;
  6.             struct
  7.             {
  8.                 unsigned a :4;
  9.                 unsigned b :4;
  10.                 unsigned c :4;
  11.                 unsigned d :4;

  12.             };
  13.         }Sta;
  14.         Sta ss;
  15.         ss.allBits=0x1234;
  16.         printf("0x%x\n",ss.allBits);
  17. //主意a是低4位,b是高4位
  18.         ss.a=0x1;
  19.         ss.b=0x2;
  20.         ss.c=0x03;
  21.         ss.d=0x04;
  22.         printf("0x%x\n",ss.allBits);
  23.         printf("sizeof(char) = %d\n",sizeof(char));
  24.         printf("sizeof(unsigned char) = %d\n",sizeof(unsigned char));
  25.         printf("sizeof(int) = %d\n",sizeof(int));
  26.        
  27. }
复制代码


使用特权

评论回复
 楼主 | 2020-10-21 21:31 | 显示全部楼层
最有意思的是,结构体部分没有起名字,竟然是用了联合的名字。。。这点没太理解。

使用特权

评论回复
 楼主 | 2020-10-21 21:32 | 显示全部楼层
        printf("sizeof(ss) = %d\n",sizeof(ss));

输出是4

使用特权

评论回复
| 2020-10-23 22:03 | 显示全部楼层
这是typedef的一种用法,楼主可以看下资料

使用特权

评论回复
| 2020-10-28 21:09 | 显示全部楼层
结构体部分没有起名字,竟然是用了联合的名字
是结构体和整型变量构成联合,  完全符合正常用法

使用特权

评论回复
| 2020-11-9 15:08 | 显示全部楼层
位段是多少个bit啊

使用特权

评论回复
| 2020-11-9 15:09 | 显示全部楼层
代码简洁流畅啊

使用特权

评论回复
| 2020-11-9 15:09 | 显示全部楼层
一下就能看明白

使用特权

评论回复
| 2020-11-9 15:09 | 显示全部楼层
请问什么位段啊

使用特权

评论回复
| 2020-11-9 15:10 | 显示全部楼层
感谢楼主的分享啊

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /5 下一条

在线客服 快速回复 返回顶部 返回列表