zoukankan      html  css  js  c++  java
  • 结构体对齐、位域结构体

    1、结构体对齐

    按照结构体中最大字节元素的字节个数对齐,比方说有最大基本元素数据类型为int,按照4字节对齐。最大为short,按照2字节对齐。

    typedef struct    //最大的元素的基本数据类型为(int)4个字节
    {
      char numChar;  //占据一个字节
      int numInt;    //第一个位只剩3字节,无法容下int,只能占据第二位(四字节为一个对齐单位)。
      short numShort;  //占据第三位,补上2个字节
    }test1;    //sizeof(test1)=12;
    typedef struct
    {
      int numInt;
      char numChar;
      short numShort;
    }test2;  //sizeof(test2)=8;
    typedef struct
    {
      short numInt;
      char hah;
      short numShort;
      char numChar;
    }test3;  //sizeof(test3)=8;

    2、位域结构体

    位结构体是一种特殊的结构体,在需访问某个字节或者某个字节的指定位的时候,位结构体比按位操作简便

    typedef struct {
      float adCheckValue;   //AD判断阈值
      int tianNum;   //车号
      struct{
        char checkStatus : 4;   //自检状态,占据第一个字节(char)的低四位。
        char AlarmStatus : 4;   //报警状态,占据第一个字节(char)的高四位。
        ushort overFlowCnt : 8;  //失稳溢出计数,占据第三个字节
        ushort isOpen : 1;  //占据第3个字节的第0位
      }statusData;
    }OriginalData;

    坚持成就伟大
  • 相关阅读:
    查看某个存储过程
    qemu-libvirt-kvm三者之间的关系
    gitlab安装
    jenkins安装
    数据库迁移(分享十一续集)
    数据库迁移(分享十一续集)
    数据库迁移(分享十一续集)
    数据库迁移(分享十一)
    云上迁移(分享十)
    阿里云迁移(分享九)
  • 原文地址:https://www.cnblogs.com/xian-yongchao/p/9542561.html
Copyright © 2011-2022 走看看