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;

    坚持成就伟大
  • 相关阅读:
    Codeforces 754A Lesha and array splitting (搜索)
    浅入分析Linux
    MakeFile基本使用
    Mac 安装YCM
    Homebrew 配置
    虚拟机复制操作CentOS6导致eth0转为eth0以至于网络服务启动失败的解决方案
    Kickstart安装
    Linux编译安装MySQL
    Python源码读后小结
    编译原理小结
  • 原文地址:https://www.cnblogs.com/xian-yongchao/p/9542561.html
Copyright © 2011-2022 走看看