乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      計(jì)算結(jié)構(gòu)體的大小(VC++)

       啟蒙彩魂 2011-04-29
      計(jì)算結(jié)構(gòu)體的大小(VC++)
      2011年04月29日 星期五 12:27

      摘要:本文簡要介紹了VC++編譯器中結(jié)構(gòu)體大小的計(jì)算原則并給出了幾個(gè)實(shí)例

      關(guān)鍵字:struct,sizeof,對(duì)齊

                 基本數(shù)據(jù)類型如char,int,double的大小可以直接拿到,數(shù)組的大小就是元素類型乘以數(shù)組長

      度。較為復(fù)雜的類型就是結(jié)構(gòu)體,他的大小并不是簡單的把各個(gè)元素的長度相加,而是要考慮到編譯器

      所做的對(duì)齊填充處理。

                 VC++編譯器中的結(jié)構(gòu)體的對(duì)齊要遵循以下三條原則:

      一、結(jié)構(gòu)體中成員變量的偏移量(相對(duì)于結(jié)構(gòu)體起始位置)必須是該成員變量大小的整數(shù)倍。

      二、結(jié)構(gòu)體的總大小必須是所有成員變量大小的整數(shù)倍。

      三、當(dāng)結(jié)構(gòu)體重有嵌套的結(jié)構(gòu)體時(shí),只需把嵌套的結(jié)構(gòu)體展開。但是嵌套結(jié)構(gòu)體的第一個(gè)元素

                的偏移量必須是被展開的結(jié)構(gòu)體的最大的成員變量的整數(shù)倍!

                注意,以上原則只使用于微軟的C/C++編譯器(X86內(nèi)核),在其他編譯器中如GCC/G++中,

      編譯器對(duì)對(duì)齊的處理時(shí)不一樣的。

                下面給出了四個(gè)結(jié)構(gòu)體,這些結(jié)構(gòu)體的大小都可以通過以上三條原則計(jì)算出,實(shí)踐表明

      計(jì)算結(jié)構(gòu)與在vc++編譯器中的運(yùn)行結(jié)果一致!

      /*
      * 計(jì)算結(jié)構(gòu)體的大小
      */

      #include <iostream>

      using namespace std;

      struct Struct1
      {
      char a;
      double b;
      };

      struct Struct2
      {
      char a;
      double b;
      char c;
      };

      struct Struct3
      {
      char a;
      char c;
      double b;
      };

      struct Struct4
      {
      char a;
      struct StructInter
      {
         int b;
         double c;
         int d;
      } Si;
      int e;
      };
      void test()
      {
      cout<<sizeof(Struct1)<<endl; //16
      cout<<sizeof(Struct2)<<endl; //24
      cout<<sizeof(Struct3)<<endl; //16
      cout<<sizeof(Struct4)<<endl;//40
      }

      int main(int argc, char* *argv)
      {
      test();
      return 0;
      }


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多