• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            asm, c, c++ are my all
            -- Core In Computer
            posts - 139,  comments - 123,  trackbacks - 0

            ********************************************\
            |????歡迎轉載, 但請保留作者姓名和原文鏈接, 祝您進步并共勉!???? |
            \********************************************/


            C++對象模型(10) - 3.2 Data Member Layout

            作者: Jerry Cat
            時間: 2006/11/15
            鏈接:?
            http://www.shnenglu.com/jerysun0818/archive/2006/11/15/15192.html


            3.2 Data Member Layout

            class Point3d {
            public:
            ?? // ...
            private:
            ?? float x;
            ?? static List<Point3d*> *freeList;
            ?? float y;
            ?? static const int chunkSize = 250;
            ?? float z;
            };
            the nonstatic data members are set down in the order of their declaration(按聲明的順序) within each class object (any intervening static data members, such as freeList and chunkSize, are ignored). In our example, then, each Point3d object consists of three float members in order: x, y, z. The static data members are stored in the program's data segment independent of individual class objects.

            The Standard requires within an access section (the private, public, or protected section of a class declaration) only that the members be set down such that "later members have higher addresses within a class object" (Section 9.2 of the Standard). That is, the members are not required to be set down contiguously.(可以不連續但必須從低到高)

            What might intervene between the declared members? Alignment constraints on the type of a succeeding member may require padding. This is true both of C and C++, and in this case, the member layout of the two languages is in current practice the same.(對齊)

            虛表指針在哪兒? Traditionally, it has been placed after all the explicitly declared members of the class. More recently, it has been placed at the beginning of the class object. The Standard, by phrasing the layout requirement as it does, allows the compiler the freedom to insert these internally generated members anywhere, even between those explicitly declared by the programmer.

            In practice, multiple access sections are concatenated together into one contiguous block in the order of declaration.編譯器幫你同類項合并 No overhead is incurred by the access section specifier or the number of access levels. For example, declaring eight members in one access section or eight separate access sections in practice results in the same-sized objects.

            posted on 2006-11-15 23:34 Jerry Cat 閱讀(1000) 評論(0)  編輯 收藏 引用

            <2006年10月>
            24252627282930
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(7)

            隨筆檔案

            最新隨筆

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久久久亚洲精品天堂| 麻豆国内精品久久久久久| 无码国内精品久久人妻蜜桃| 久久精品中文无码资源站| 婷婷综合久久狠狠色99h| 模特私拍国产精品久久| 丰满少妇人妻久久久久久| 久久伊人亚洲AV无码网站| 日产精品久久久久久久| 精品一久久香蕉国产线看播放| 久久久久久久久波多野高潮| 国产999精品久久久久久| 久久精品青青草原伊人| 久久久久无码国产精品不卡| 大伊人青草狠狠久久| 久久午夜福利无码1000合集| 国产精品久久久久久久午夜片| 99久久人妻无码精品系列| 午夜精品久久久内射近拍高清 | 狠狠色丁香久久婷婷综| 亚洲欧洲中文日韩久久AV乱码| 国产精品一久久香蕉国产线看| 亚洲精品乱码久久久久久| 久久本道综合久久伊人| 国产精品久久国产精麻豆99网站| 成人午夜精品无码区久久| 麻豆久久| 久久九九兔免费精品6| 色狠狠久久综合网| 久久亚洲sm情趣捆绑调教| 一本大道久久香蕉成人网| 国内精品伊人久久久久影院对白| 伊人久久综在合线亚洲2019| 国产精品久久久久9999高清| 久久99精品久久久久久久久久| 亚洲欧美成人综合久久久| 性欧美大战久久久久久久久| 久久精品国产亚洲AV嫖农村妇女 | 欧美一区二区精品久久| 国产精品久久久天天影视香蕉| 国产免费福利体检区久久|