zoukankan      html  css  js  c++  java
  • 结构体位结构

    位结构 

        位结构是一种特殊的结构, 在需按位访问一个字节或字的多个位时, 位结构 比按位运算符更加方便。 

        位结构定义的一般形式为: 

         struct位结构名{ 

              数据类型 变量名: 整型常数; 

              数据类型 变量名: 整型常数; 

         } 位结构变量; 

        其中: 数据类型必须int(unsigned或signed)。 整型常数必须是非负的整数, 范围是0~15, 表示二进制位的个数, 即表示有多少位。 

        变量名是选择项, 可以不命名, 这样规定是为了排列需要。 

        例如: 下面定义了一个位结构。 

         struct{ 

              unsigned incon: 8;  /*incon占用低字节的0~7共8位*/ 

              unsigned txcolor: 4;/*txcolor占用高字节的0~3位共4位*/ 

              unsigned bgcolor: 3;/*bgcolor占用高字节的4~6位共3位*/ 

              unsigned blink: 1;  /*blink占用高字节的第7位*/ 

         }ch; 

        位结构成员的访问与结构成员的访问相同。 

        例如: 访问上例位结构中的bgcolor成员可写成: 

          ch.bgcolor 

        注意: 

        1. 位结构中的成员可以定义为unsigned, 也可定义为signed,  但当成员长度为1时, 会被认为是unsigned类型。因为单个位不可能具有符号。 

        2. 位结构中的成员不能使用数组和指针, 但位结构变量可以是数组和指针, 如果是指针, 其成员访问方式同结构指针。 

        3. 位结构总长度(位数), 是各个位成员定义的位数之和,  可以超过两个字节。 

        4. 位结构成员可以与其它结构成员一起使用。 

        例如: 

         struct info{ 

              char name[8]; 

              int age; 

              struct addr address; 

              float pay; 

              unsigned state: 1; 

              unsigned pay: 1; 

              }workers;’ 

        上例的结构定义了关于一个工从的信息。其中有两个位结构成员, 每个位结构成员只有一位, 因此只占一个字节但保存了两个信息, 该字节中第一位表示工 

    人的状态, 第二位表示工资是否已发放。由此可见使用位结构可以节省存贮空间。 

  • 相关阅读:
    ArrayAdapter与SimpleAdapter的使用
    ThinkPHP之数据库操作
    android之显示数据库信息
    linux下定时任务的使用
    ThinkPHP中的跨控制器调用与框架执行流程
    android之SQLlite操作
    linux中的进程管理
    [技巧篇]16.MyEclipse2014安装SVN插件,在线安装
    [技巧篇]15.火狐浏览器缓存设置,提高开发效率!
    [技巧篇]14.据说SSH框架需要的监听器,IntrospectorCleanupListener
  • 原文地址:https://www.cnblogs.com/rohens-hbg/p/5101603.html
Copyright © 2011-2022 走看看