在linux下的存儲形式,其中黑色包圍起來的才是我們的存儲空間白色的部分是保留區(qū)域,通過下面的兩幅圖就可以知道其中的一些道理,知道其中所謂的完成一樣的功能,保證存儲空間最?。?/div>
在windows下的存儲形式,其中黑色包圍起來的才是我們的存儲空間白色的部分是保留區(qū)域:
從上面的幾個圖片可以知道在C語言中的內存分布是比較復雜的。一定要注意存儲的對齊形式,這樣才能了解其中的分布規(guī)律。當然了上面的形式都只是在小端處理器模式下的存儲形式,對于大端也有類似的情況,只是存儲的位置不一樣,但是內存的大小是相同的。
結構體的定義不能是隨便的,如果考慮好對齊關系能夠節(jié)省大量的存儲空間。實現效率和存儲空間的折中。雖然#pragmapack(n)等能夠改變其中的對齊方式,不過建議不要隨便改動,可能得不償失。
評論