C語言內存對齊的另一面

想必大家已經涉及過內存對齊的問題,這個問題已經被討論過很多次,上網一搜一大票。

1 內存對齊的作用:

爲了提高程序的性能,數據結構(尤其是棧)應該儘可能地在自然邊界上對齊。原因在於,爲了訪問未對齊的內存,處理器需要作兩次內存訪問;然而,對齊的內存訪問僅需要一次訪問。 

2 如何禁止內存對齊?

可以使用#pragma pack編譯指令

3 主要什麼情況下要禁止內存對齊?

爲了實現跨平臺編程,避免不同編譯器之間的區別。

需要通過偏移量來訪問結構體成員。

節省空間。(實際上這中情況可以忽略,畢竟現在的存儲空間已經很大了)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章