2012-10-30 22 views

回答

1

CPU寄存器經常指向存儲器。

當您增加一個寄存器時,它會在64位機器上進一步指向64位。 但是,如果你想獲得該部分內的一個字節,編譯器必須做更多的工作。

如果你對齊內存的「邊緣」的內存,寄存器可以更快地訪問它們。這也意味着結構成員被填充,所以一些空間被浪費了。如果你做了一個內存轉儲的結構,你可能會驚訝於填充。

+0

在macOS中,編譯器將任何數組對齊到16字節。 GCC在64位系統上也能做到這一點嗎? – Royi

+0

1)我不知道。 2)如果你有新的問題,你應該開始一個新的問題,而不是標記。 3)Necro發帖(張貼到非常老的帖子)令人不悅。 –