• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 關于sizeof

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    這個東西讓我載了跟頭;一定要弄明白;結構的size和class的size; 關于sizeof對結構類型的尺寸計算: 對結構整體求值結果與對結構成員分別求值的和不等; 這是由于編譯器對結構進行存儲空間分配時作內存對齊引起的; struct thestruct{ double ddb; char chb;
    這個東西讓我載了跟頭;一定要弄明白;結構的size和class的size;

    關于sizeof對結構類型的尺寸計算:

    對結構整體求值結果與對結構成員分別求值的和不等;

    這是由于編譯器對結構進行存儲空間分配時作內存對齊引起的;

    struct thestruct{

    double ddb;

    char  chb;

    int    intb;

    };

    這個結構在32位intel平臺用MS VC6編譯后求值為16;

    在32位sparc平臺用SunStudio 的clearcase/" target="_blank" >cc編譯后也是16;

    struct thestruct{

    char  chb;

    double ddb;

    int    intb;

    };

    這個結構在32位intel平臺用MS VC6編譯后求值為24;

    在32位sparc平臺用SunStudio 的cc編譯后也是24;

    看來對齊規則是相同的;

    我找了一個別人總結的對齊規則;

    第一,就是結構中每個成員的存放地址相對于結構起始地址的偏移量,必須是該成員實際尺寸的倍數;

    第二,就是結構體整體的尺寸必須是最大成員尺寸的倍數;

    補進去的空間閑置不用;

    //============================================================

    sizeof對類的尺寸計算:

    剛試過了;

    這就和struct一樣,僅僅是成員函數要算一個指針,32位機上面增加4字節;

    我只在sparc上試過,intel上沒試;

    另外static類型的成員尺寸不算在內,對類的尺寸沒任何影響;

    虛函數也是有二進制實現的,當然也算在內;今天被人忽悠得不自信了,竟然沒敢說這個事;

    不過有件事還是郁悶,就是純虛函數;這種東西沒有二進制實現,我試驗的結果是它也不影響類尺寸;

    但是純虛類本身不能實例化,算出來有啥用呢;

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>