C語言函數參數,內存對齊問題

我們都知道C語言中,struct會做內存對齊,實際分配的內存出現比看上去的多。

C語言函數參數傳遞的時候也會有類似的情形。但這個和struct內存對齊(https://stackoverflow.com/questions/4306186/structure-padding-and-packing)不一樣,它不是插入同類型的數據而是忽略比較小的參數指定,然後widen這個參數。

具體擴展到多大,不同的系統會有不同的大小。對於Linux IA32 是32bits,Linux x86_64是64bits。

參考:https://stackoverflow.com/questions/30363661/c-function-argument-memory-alignment-considerations

 

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