zoukankan      html  css  js  c++  java
  • #pragma pack(n)的使用

    在缺省情况下,编译器为了让程序跑得跟快,减少CPU读取数据的指令周期,对结构体的存储进行了优化,

    比如:如下结构体

    struct s 

    {

    char ch;

    int i;

    };

    虽然变量ch本身只有1个字节,但实际上却占用掉了4个字节,为的是让第二个int型成员i的地址能够被4整除。因此实际占用的是8个字节,sizeof(s) = 8。

    一般地,可以通过下面的方法来改变缺省的对界条件:
    使用伪指令#pragma pack (n),C编译器将按照n个字节对齐。
    使用伪指令#pragma pack (),取消自定义字节对齐方式。

    比如:如下结构体

    #pragma pack(1)

    struct s 

    {

    char ch;

    int i;

    };

    #pragma pack()

    这样结构体实际占用了5个字节,sizeof(s)=5;

  • 相关阅读:
    highcharts
    iCheck
    MdiContainer
    wms-ssv数据字典
    hibernate 返回自定义对象
    XmlSerialize
    Db
    python groupby
    pom resource配置
    FastReport打印table
  • 原文地址:https://www.cnblogs.com/zhangnianyong/p/8489537.html
Copyright © 2011-2022 走看看