zoukankan      html  css  js  c++  java
  • 预处理、const、static与sizeof-#pragma pack的作用

    1:有如下代码:

    #include <iostream.h>
    #pragma pack(1)
    struct test{
              char c;
              short s1;
              short s2;
              int i;
    };
    
    int mian()
    {
        cout<<sizeof(test)<<endl;
        return 0;
    }

        代码第3行用#pragma pack将对其设为1.由于结构体test中的成员s1、s2和i的自身对齐分别为2、2和4,都小于1.因此它们都是用1作为对齐,sizeof(test)=1+2+2+4=9.

        如果注释掉第3行,则编译器默认对齐为8.所以各个成员自身的对齐都小于8,因此它们使用自身的对齐,sizeof(test)=1+1(补齐)+2+2+2(补齐)+4=12.

  • 相关阅读:
    五一集训——图论
    Luogu P3942 将军令
    8.14 Round 1
    8.10 Round 1
    8.9 Round 1
    8.7 Round 2
    8.7 Round 1
    8.6 Round 1
    8.5 Round 2
    FHQ-Treap
  • 原文地址:https://www.cnblogs.com/lovemi93/p/7637767.html
Copyright © 2011-2022 走看看