青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版MSDN

Blog @ Blog

當華美的葉片落盡,生命的脈絡才歷歷可見。 -- 聶魯達

常用鏈接

統計

積分與排名

BBS

Blog

Web

最新評論

C++中的尺寸[轉]

轉自:http://blog.csdn.net/arong1234/archive/2008/03/23/2210462.aspx

1. sizeof:返回類型的尺寸

 每個類型在編譯時都會決定自己的實例需要多少字節。在編譯后,該類型的所有對象占有的空間是一樣的,不會發生變化。因此,我們可以用sizeof來計算一個類型或者該類型的某個實例來得到尺寸信息。下面的代碼是等價的


int iVal;
//sizeof type
sizeof(int)
//sizeof instance
sizeof(iVal)

無論我們用iVal還是int,上面的表達式都會返回int類型的尺寸(當然如前所說,iVal的尺寸和其類型尺寸永遠是一樣的)。

不熟悉sizeof的朋友往往會在處理指針時弄錯概念。考慮下面代碼:

int iArray[10];
int sizeofArray=sizeof(iArray);

int * p= new int[10];
int sizeofPointer = sizeof(p);

在很多人心目中,指針和數組是等價的,但是事實嚴格起來并不如此。上面的代碼就會返回不同的結果。

對于iArray,它的類型是int[10],是一個數組,sizeof計算其尺寸時,知道它包含10個元素,每個元素都時個整型,因此返回40。而對于p,它的類型是int*,指針的尺寸永遠是4,因此結果就是4。sizeof不會也不可能知道p實際指向10個元素的數組。

出現這個問題的原因有兩個:1. sizeof是在編譯時計算的,而new int[10]指向的數組是在運行時創建的,也就是說當sizeof(p)計算時,系統還不知道p會指向多少個int元素,自然也不可能知道它指向的數組占有多少字節。2. sizeof計算的是p自己的類型所占據的空間,而不是p指向的對象所占據的空間,可以說,p自己占據4個字節,而p指向的空間占40字節。

在這種概念下,我們是不是可以通過sizeof(*p)來得到40呢?很不幸,不行,原因是p的類型是int*,*p的類型是int,因此無法得到其是一個數組的事實。

實際上,這個尺寸信息是個運行時數據,作為C/C++語言而言,是無從知道這個信息的(因為C/C++指針不包含這種信息),要得到它,唯一的辦法是指望操作系統在運行時中提供。在VC中,我們可以通過_msize得到。

2. 對齊問題

我們在訪問內存時,如果地址是按4字節對齊,則訪問效率會高很多。這個問題的原因在于訪問內存的硬件電路。一般情況下,地址總線總是按照對齊后的地址來訪問。例如你想得到0x00000001開始的4字節內容,系統首先需要以0x00000000讀4字節,然后從中取得3字節,然后在用0x00000004作為開始地址,獲得下一個四字節,在從中得到第一個字節,兩次組合出你想得到的內容。但是如果地址一開始就是對齊到0x00000000,則系統只要一次讀寫即可。

為了性能考慮,編譯器會對結構進行對齊處理。考慮下面的結構

 

struct aStruct
{
               
char cValue;
               
int    iValue;
}
;

 

直觀的講,這個結構的尺寸是sizeof(char)+sizeof(int)=5,但是在實際編譯下,這個結構尺寸缺省是8,因為第二個域ivalue會被對齊到第四個字節。

在VC中,我們可以用pack預處理指令來禁止對齊調整。例如,下面代碼將使得結構尺寸更加緊湊,不會出現對齊到4字節問題:

 

#pragma pack(1)
struct aStruct{
     
char cValue;
    
int     iValue;
}
;
#pragma pack()

對于這個pack指令的含義,大家可以查詢MSDN。請注意:除非你覺得必須這樣,不要輕易做這樣的調整,因為這將降低程序性能。目前比較常見的用法是:1. 這個結構需要被直接寫入文件 2. 這個結構需要通過網絡傳給其他程序。

注意:字節對齊是編譯時決定的,一旦決定不會再改變,因此即使有對齊的因素在,也不會出現一個結構在運行時尺寸發生變化的情況出現。

posted on 2008-05-25 21:53 isabc 閱讀(392) 評論(0)  編輯 收藏 引用 所屬分類: C++基礎

廣告信息(免費廣告聯系)

中文版MSDN:
歡迎體驗

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲性图久久| 蜜臀va亚洲va欧美va天堂| 国产精品theporn| 99国产精品国产精品久久| 亚洲精品精选| 欧美日韩一区二区三区视频| 亚洲乱码精品一二三四区日韩在线 | 欧美国产精品日韩| 亚洲人体大胆视频| 亚洲精品一区二区三区蜜桃久| 欧美人与禽猛交乱配视频| 亚洲一区二区在线免费观看| 亚洲男人第一网站| 精品99一区二区| 亚洲精品视频在线| 国产精品稀缺呦系列在线| 久久久噜噜噜久久人人看| 麻豆精品在线观看| 亚洲午夜一区| 久久久免费精品| 亚洲一区精彩视频| 久久亚洲影音av资源网| 中国亚洲黄色| 久久天天狠狠| 亚洲欧美欧美一区二区三区| 久久精品欧美日韩精品| 一本色道久久88亚洲综合88| 欧美一级免费视频| av不卡在线看| 久久精品99久久香蕉国产色戒| 亚洲美女在线看| 久久国产精品久久久| 亚洲视频国产视频| 久久夜色精品亚洲噜噜国产mv| 中文久久乱码一区二区| 久久婷婷国产综合国色天香| 午夜精彩国产免费不卡不顿大片| 久久综合影音| 欧美一级视频免费在线观看| 欧美激情bt| 蜜桃久久精品乱码一区二区| 国产精品盗摄一区二区三区| 亚洲成色777777女色窝| 国产一区91| 亚洲一区影院| 亚洲影院高清在线| 欧美韩国在线| 欧美高清在线| 国产在线欧美日韩| 亚洲一区二区三区三| 在线综合亚洲欧美在线视频| 久久综合网络一区二区| 久久久久久婷| 国产亚洲精品美女| 亚洲一级黄色| 午夜在线一区| 国产精品日韩在线| 亚洲一区二区三区在线看| 一区二区三区免费网站| 欧美精品入口| 亚洲片在线资源| 日韩视频专区| 欧美日韩国产a| 亚洲乱码久久| 一区二区国产精品| 欧美日韩亚洲综合一区| 亚洲欧洲综合另类| 亚洲视屏在线播放| 国产精品久久网| 性欧美超级视频| 久久色在线播放| 在线不卡中文字幕播放| 毛片一区二区三区| 亚洲激情视频在线播放| 日韩一区二区精品葵司在线| 欧美日韩ab| 亚洲图片你懂的| 久久久99爱| 亚洲国内在线| 欧美日韩美女在线| 一区二区三区四区国产| 久久黄金**| 亚洲高清不卡av| 欧美日本一区二区高清播放视频| 99精品久久久| 欧美主播一区二区三区美女 久久精品人 | 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲乱码国产乱码精品精| 欧美日韩国产va另类| 亚洲一区二区三区四区五区黄 | 国产一区二区电影在线观看| 欧美在线观看视频一区二区| 欧美国产免费| 亚洲视频一二| 国内精品久久久久久 | 国产精品亚洲综合久久| 久久精品综合网| 亚洲国产日韩美| 午夜精品福利视频| 在线色欧美三级视频| 欧美日韩午夜精品| 久久国产精品久久久| 亚洲精品一区二区三区蜜桃久 | 亚洲黄色影片| 国产精品久久久久久久久搜平片| 欧美在线高清| 妖精成人www高清在线观看| 久久国产手机看片| 日韩视频一区二区三区在线播放免费观看| 欧美三级视频在线播放| 久久久久久久久久码影片| 亚洲伦理网站| 欧美成人免费小视频| 亚洲资源在线观看| 亚洲国产精品嫩草影院| 国产精品免费看久久久香蕉| 欧美+日本+国产+在线a∨观看| 亚洲视频精选在线| 亚洲国产欧美一区二区三区同亚洲| 亚洲永久免费| 亚洲日本视频| 精品动漫3d一区二区三区| 国产精品国产自产拍高清av| 欧美成人精品h版在线观看| 欧美一区二区免费| 亚洲午夜在线观看| 亚洲乱亚洲高清| 欧美激情在线| 免费欧美日韩| 久久婷婷国产综合尤物精品| 亚洲欧美三级在线| 9l国产精品久久久久麻豆| 亚洲国产日韩一区二区| 极品尤物av久久免费看| 国产在线视频欧美| 国产午夜精品美女毛片视频| 国产精品久久久久久久久婷婷| 欧美精品在线一区| 欧美精品99| 欧美久久99| 欧美日韩高清一区| 欧美精品18+| 欧美日韩成人综合在线一区二区| 免费黄网站欧美| 蜜臀va亚洲va欧美va天堂| 老巨人导航500精品| 久久视频一区二区| 免费观看成人| 欧美精品一区二区三区在线看午夜| 毛片基地黄久久久久久天堂| 毛片一区二区三区| 欧美黄色成人网| 欧美日韩第一区| 国产精品99免费看 | 欧美日韩精品一区二区三区| 欧美激情在线免费观看| 欧美精品 国产精品| 欧美日韩一区二| 国产精品美女久久久久久2018 | 国产中文一区二区三区| 国语自产精品视频在线看抢先版结局| 国产亚洲精品资源在线26u| 韩国av一区| 亚洲欧洲免费视频| 中国女人久久久| 欧美一级一区| 老司机午夜精品视频在线观看| 欧美成人精品在线视频| 亚洲国产一区在线观看| 99热精品在线观看| 欧美一区二区三区视频| 快射av在线播放一区| 欧美日韩一卡二卡| 国产婷婷一区二区| 亚洲欧洲美洲综合色网| 亚洲欧美日韩一区二区三区在线观看 | 亚洲人成免费| 午夜一区在线| 欧美大片专区| 国产欧美日韩在线视频| 亚洲国产视频a| 性做久久久久久免费观看欧美| 麻豆精品视频在线观看视频| 亚洲另类在线视频| 久久久精品性| 国产精品久久精品日日| 伊人久久亚洲热| 亚洲欧美日本日韩| 亚洲电影中文字幕| 亚洲女同在线| 欧美激情在线观看| 一区二区在线观看av| 亚洲欧美日韩综合| 亚洲大片av| 久久精品国产一区二区电影| 欧美视频日韩视频| 亚洲卡通欧美制服中文| 久久午夜精品| 亚洲欧美一区二区三区久久| 欧美精品一区在线观看|