關于結構體數據存儲的對齊問題
作者:
時間:2016-12-01
來源:網絡
收藏
在linux下的結果:
在windows下的結果:
在linux下的存儲形式,其中黑色包圍起來的才是我們的存儲空間白色的部分是保留區域,通過下面的兩幅圖就可以知道其中的一些道理,知道其中所謂的完成一樣的功能,保證存儲空間最小:
在windows下的存儲形式,其中黑色包圍起來的才是我們的存儲空間白色的部分是保留區域:
從上面的幾個圖片可以知道在C語言中的內存分布是比較復雜的。一定要注意存儲的對齊形式,這樣才能了解其中的分布規律。當然了上面的形式都只是在小端處理器模式下的存儲形式,對于大端也有類似的情況,只是存儲的位置不一樣,但是內存的大小是相同的。
結構體的定義不能是隨便的,如果考慮好對齊關系能夠節省大量的存儲空間。實現效率和存儲空間的折中。雖然#pragmapack(n)等能夠改變其中的對齊方式,不過建議不要隨便改動,可能得不償失。
技術專區
主站蜘蛛池模板:
桦南县|
东港市|
长治市|
石嘴山市|
潼关县|
千阳县|
白山市|
琼结县|
都兰县|
浦东新区|
太保市|
天祝|
阿坝|
油尖旺区|
古浪县|
乌审旗|
长阳|
德阳市|
渭南市|
远安县|
巴彦县|
抚顺市|
托里县|
平舆县|
三都|
防城港市|
邓州市|
金昌市|
石狮市|
永登县|
安达市|
合山市|
观塘区|
金湖县|
汨罗市|
资源县|
乌兰浩特市|
雅江县|
东乡族自治县|
班戈县|
巫山县|
評論