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

HyJune的專欄

Linux From Scratch

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  10 隨筆 :: 11 文章 :: 6 評論 :: 0 Trackbacks
from: http://blog.csdn.net/happyhippy/archive/2006/11/09/1375768.aspx

前兩天面試某公司時,沒有回答上的一個問題,總結如下,以供參考。

問:下面這個結構類型的實例變量占用多少內存:
struct struct1
{
    int i;
    short j;
    char c;
};
我反問:是啥語言啥機器啥編譯環境?
他回答說:VC6.0下。
我:內存對齊后占8byte。
他又繼續問:如何讓它只占7byte?
我的第一反應是使用位段,正準備回答,又感覺不對,位段不能讓它不對齊啊。又想了幾秒鐘,還是不會,只好回他說沒玩過……


今天下午去圖書館翻了下《代碼優化:有效使用內存》,發現里面提到了兩種方法:
法1:
#pragma pack(push)
#pragma pack(1)
struct struct1
{
    int i;
    short j;
    char c;
};
#pragma pack(pop)


法2:
修改編譯指令的參數,來禁止內存對齊:
VC++             :/Zn1(VS2005下,右擊項目-屬性-配置屬性-C/C++-代碼生成-結構成員對齊-選“1字節(/Zn1):”(即禁止內存對齊),默認是使用默認值,即按照結構中占用空間最大的成員進行對齊。的size進行對齊。
Borland C++ : /-a1


法2是對整個項目禁用內存對齊,而法1可以針對特定的結構禁用內存對齊,其提供了更大的靈活性.



另外,該書中還提到:
char不對齊;
short沿偶地址對齊;
int/float沿取值為4的倍數的地址對齊。
double沿取值為8的倍數的地址對齊。


VS2005下,默認是使用默認值,即按照結構中占用空間最大的成員進行對齊,我們可以測試下面這個結構:
struct struct2
{
    char i;
    short d;
    double c;
    short j;
};

//保持為默認值或修改編譯參數/Zn?,猜下sizeof結果為多少?:)
printf("struct2:%d\n",sizeof(struct2));
struct2 st;
printf("%p\n",&st.i);
printf("%p\n",&st.d);
printf("%p\n",&st.c);
printf("%p\n",&st.j);

 

補充:數據的手工對齊:

char *p;
int temp = align_power-1;
p=(char*)malloc(need_size + temp;
p=(char*)malloc(((int)p+temp)&temp);//修改了p,所以釋放p前記得要歸位
注:align_power是所需要的對齊冪,char*(也可以為int*)是指針類型。另外,釋放p之前記得讓其指向所申請的內存的首地址上。



posted on 2008-06-17 17:36 martin0501 閱讀(513) 評論(0)  編輯 收藏 引用 所屬分類: 6. 面試題集錦
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久99国产精品免费| 久久久久久久综合| 欧美极品一区| 亚洲欧美国产高清va在线播| 亚洲国产精品视频| 美女国产一区| 久久综合色8888| 免费视频一区| 99国产一区| 欧美日韩精品免费观看视一区二区 | 欧美日韩精品一区| 欧美在线日韩在线| 农村妇女精品| 欧美激情一区二区三区成人| 欧美性一区二区| 激情六月婷婷综合| 亚洲天堂av图片| 久久在线视频| 久久国产精品毛片| 美日韩精品视频免费看| 一区二区三区色| 在线一区二区三区四区五区| 午夜一区不卡| 欧美日韩国产bt| 亚洲电影自拍| 亚洲欧美日韩在线综合| 欧美激情一区二区三区在线视频| 亚洲精品黄网在线观看| 欧美中文在线视频| 欧美高清视频一区| 亚洲福利国产精品| 一区二区三区四区五区视频| 久久深夜福利| 亚洲国产日韩欧美在线动漫| 久久手机免费观看| 亚洲免费一在线| 国产热re99久久6国产精品| 亚洲欧美日韩国产另类专区| 亚洲精品字幕| 国产精品系列在线| 久久国产免费| 久久婷婷综合激情| 在线一区二区三区四区| 亚洲午夜精品久久久久久浪潮| 欧美日韩不卡| 久久精品国产亚洲a| 老司机午夜精品视频在线观看| 精品动漫3d一区二区三区免费版| 麻豆精品传媒视频| 亚洲欧美日韩国产一区二区| 久久久国产精品亚洲一区| 亚洲韩国精品一区| 欧美日韩精品二区| 亚洲欧美成aⅴ人在线观看| 亚洲欧美精品suv| 亚洲福利视频二区| 一区二区三区免费观看| 亚洲第一精品影视| 亚洲视频在线二区| 亚洲欧洲视频在线| 久久精品一二三| 宅男噜噜噜66一区二区66| 久久精品五月| 久久精品夜色噜噜亚洲aⅴ| 亚洲免费观看视频| 久久精品视频在线播放| 亚洲一区二区三区精品在线| 久久久久www| 午夜亚洲性色视频| 欧美日韩国产丝袜另类| 亚洲大片一区二区三区| 国产亚洲免费的视频看| 午夜精品久久久久久99热软件| 欧美色另类天堂2015| 久久午夜色播影院免费高清| 国产日本精品| 欧美一级电影久久| 亚洲欧洲av一区二区| 国产精品久久久久aaaa樱花| 日韩午夜在线观看视频| 亚洲性线免费观看视频成熟| 亚洲国产精品久久久| 亚洲资源av| 亚洲视频一区在线| 国产精品国产三级国产| 亚洲综合成人在线| 美女黄毛**国产精品啪啪| 亚洲日本免费| 欧美日韩免费在线观看| 亚洲欧美中文日韩在线| 久久在线91| 中文一区二区| 国产自产精品| 欧美激情精品久久久久久免费印度| 亚洲美女一区| 女人香蕉久久**毛片精品| 亚洲最新在线视频| 在线电影院国产精品| 国产精品v欧美精品v日韩| 久久国产一二区| 亚洲一级一区| 亚洲精品一区二区三区99| 欧美一区二区三区在线免费观看| 亚洲电影专区| 国产一区二区三区在线观看视频| 欧美激情在线观看| 另类欧美日韩国产在线| 欧美一区激情视频在线观看| 亚洲美女性视频| 亚洲国产欧美日韩另类综合| 久久精品卡一| 久久午夜精品一区二区| 欧美在线在线| 久久久久国产一区二区三区| 午夜亚洲视频| 美女免费视频一区| 欧美凹凸一区二区三区视频| 免费国产一区二区| 欧美久久久久免费| 欧美日韩亚洲一区二区三区在线观看| 在线播放中文一区| 国产一级揄自揄精品视频| 国产婷婷色一区二区三区| 国产精品一区二区久久精品| 国产日韩欧美91| 在线成人亚洲| 亚洲视频网在线直播| 久久精品国产999大香线蕉| 免费91麻豆精品国产自产在线观看| 欧美福利一区| 国产日韩欧美电影在线观看| 亚洲国产三级网| 亚洲一区二区在线播放| 久久久久国产成人精品亚洲午夜| 欧美激情视频一区二区三区免费 | 久久久午夜电影| 欧美精品激情| 黄色一区二区在线观看| 亚洲欧美国产精品桃花| 亚洲国产精品成人久久综合一区| 一区二区三区四区五区在线| 欧美99久久| 亚洲电影欧美电影有声小说| 亚洲在线观看免费| 亚洲精品在线免费| 欧美本精品男人aⅴ天堂| 国产一区二区三区久久久久久久久| 亚洲天堂网在线观看| 亚洲精品日韩精品| 欧美区高清在线| 日韩一级裸体免费视频| 欧美激情精品久久久久久免费印度 | 欧美主播一区二区三区| 国产精品日日做人人爱| 午夜免费日韩视频| 小黄鸭精品密入口导航| 韩日精品中文字幕| 欧美一区不卡| 国产精品视频一区二区高潮| 久久久xxx| 欧美一级在线视频| 免费中文字幕日韩欧美| 欧美片在线观看| 暖暖成人免费视频| 欧美在线播放| 国产精品人成在线观看免费 | 欧美激情第4页| 亚洲二区在线视频| 亚洲欧洲一区| 欧美三级在线视频| 亚洲小说春色综合另类电影| 亚洲影院一区| 国产婷婷精品| 欧美好吊妞视频| 亚洲美女中出| 最近中文字幕日韩精品| 欧美成人蜜桃| 欧美77777| 99精品欧美一区二区三区综合在线 | 午夜天堂精品久久久久| 欧美日韩中文在线| 最新国产成人在线观看| 亚洲乱码国产乱码精品精| 久久亚洲一区二区三区四区| 狂野欧美一区| 亚洲国产一区视频| 欧美乱人伦中文字幕在线| 亚洲第一网站| 一区二区三区日韩在线观看| 国产精品av免费在线观看| 亚洲综合精品四区| 欧美sm视频| 在线视频日韩| 国产亚洲一级高清| 亚洲精品一二三区| 亚洲图片你懂的| 国产精品久久久久久久电影| 亚洲国产精品第一区二区| 怡红院精品视频在线观看极品| 午夜精品一区二区三区在线|