1、结构体中使用冒号(:)表示位域,表示占用一个字节的多少位,是对位的操作;

2、因为是对一个字节中位的操作,所以位定义类型都是一个类型;

3、8位示例://因为是8位,所以用的是uint8_t,8位刚好全用完了。

typedef struct {
    uint8_t   a : 1;  
    uint8_t    b: 1; 
    uint8_t    c: 1;  
    uint8_t    d: 1;    
    uint8_t   e: 1; 
    uint8_t    f: 1; 
    uint8_t    g: 1; 
    uint8_t    h: 1; 
}mybits;

32位示例://因为是32位的,所以用的是uint32_t,位可以没有用完;

typedef struct {
    uint32_t   a : 1;  
    uint32_t    b: 1; 
    uint32_t    c: 1;  
    uint32_t    d: 1;    
    uint32_t   e: 1; 
    uint32_t    f: 1; 
    uint32_t    g: 1; 
    uint32_t    h: 1; 
}mybits;

详细可参考一下链接说明:

https://blog.csdn.net/modi000/article/details/103999484?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159054496219726869063706%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=159054496219726869063706&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v25-1-103999484.nonecase&utm_term=%E7%BB%93%E6%9E%84%E4%BD%93

结构体中使用冒号对位的操作相关推荐

  1. C语言结构体中的冒号用法

    结构体中的冒号表示位域. 位域出现的原因是由于某些信息的存储表示只需要几个bit位就可以表示而不需要一个完整的字节,同时也是为了节省存储空间和方便处理. 其表示形式为: struct 位域结构名 { ...

  2. c语言的结构体能存放函数吗,在C语言结构体中添加成员函数

    我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...

  3. C语言中利用宏,实现一个整数的奇数位和偶数位交换,以及计算结构体中某变量相对于首地址的偏移

    C语言中的自定义宏 自定义宏,令其实现所需功能 1.写一个宏,可以将一个整数字的奇数位和偶数位交换. 2.写一个宏,计算结构体中某变量相对于首地址的偏移. 具体思路1: 首先取出当前数的奇数部分和偶数 ...

  4. c语言 结构体 占位符,深入理解结构体中占位符的用法

    深入理解结构体中占位符的用法 复制代码 代码如下: typedef union { struct x{ char a1 : 2; char b1 : 3; char c1 : 3; }x1; char ...

  5. 结构体中占位符的用法

    typedef union {struct x{char a1 : 2;char b1 : 3;char c1 : 3;}x1;char c; }my_un; int main() {my_un a; ...

  6. C语言结构体中__packed 和位段的理解!

    C语言中__packed 和位段的理解 一:__packed typedef __packed struct struct常用在数据结构中.而struct的字节对齐方式对于嵌入式底层的程序员来讲是必须 ...

  7. 获取结构体中变量的偏移量

    C/C++获取结构体中变量的偏移量 1.某些特殊需求下,我们需要知道某个变量在其结构体中的偏移位置. 通常的做法就是定义一个宏变量,如下: #define OFFSET(structure, memb ...

  8. linux结构体数组的定义数组,task_struct结构体中的run_list和array域

    他们的定义分别是: struct list_head run_list; prio_array_t *array; 其中,想必struct list_head这个结构体大家很熟悉了 struct li ...

  9. 结构体中元素引用—— “.“ 与 “->“

    自从了解结构体这个类型后,相信有不少人和我一样对于 "." 和 "->"何时使用哪个来引用目标结构体中元素感到混淆,今天还是把他写下来,以后再忘了自己也可 ...

最新文章

  1. 运维人员处理云服务器故障的方法总结
  2. hello my first blog
  3. CSS Grid布局(2)
  4. 股市三大定律是什么?
  5. 基于依存句法分析的资金账户交易画像
  6. 【大话传送网-学习笔记】传送网与GSM网络
  7. Android packageManager.setComponentEnabledSetting()和setApplicationEnabledSetting()方法介绍
  8. 恩尼格玛机(字母转换,水题)
  9. Java中的Enum的简单使用
  10. jetson nano笔记
  11. 域账户登录本地计算机用户名,如何实现域账户domain/user登陆时自动添加到本地计算机poweruser用户组...
  12. [BZOJ2121]-字符串游戏-字符串dp
  13. 安装插件解决eclipse没有JS代码提示的问题
  14. discuz模板文件列表
  15. 国内首发|软件众包发展指数报告
  16. HEIC图片格式如何快速转换呢?
  17. maya 多边形uv批量传递工具
  18. 华为网络工程师的考试费用和考试资格是什么?
  19. cAdvisor使用
  20. 2019校园招聘 ——百度、京东、苏宁等产品经理面试经验总结

热门文章

  1. 删除 List 元素的几种方法
  2. 计算机视觉python--基础矩阵和极点极线
  3. Empire信息收集
  4. 基于XGBoost的用户流失预测
  5. 虚拟机Linux CentOS 7安装配置Tomcat10(适用于安装任何tomcat版本!!)
  6. java 常用英语单词
  7. FastDFS学习笔记 -- day04 与Nginx整合
  8. 【回溯】B042_LQ_滑动解锁(dfs + 跨点判断)
  9. Linux解决No such file or dirctory方法
  10. 初等数论 - 定理证明