一 概述
二 类型
三 语句
四 函数
五 数据
六 内存
七 代码
附录
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
7. 位段
也称作位域(bit-field),将 struct、union 成员按二进制位指定宽度。
- 编译器合并成员,实现更紧凑存储,节省内存。
type memeber_name: width;
类型是整数(_Bool, int 等)或枚举。如省略成员名,则表示做对齐填充。位宽不能超过成员类型限制。
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <assert.h> struct prot { bool read : 1; bool write : 1; bool exec : 1; }; int main (void) { struct prot p = {true, false, true}; assert(sizeof(p) == 1); assert(p.exec == true); return 0; }
不能对位字段 offset 和取地址。
error: cannot take address of bit-field 'read'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论