1. 程式人生 > >_packed / #pragma pack() 字節對齊問題

_packed / #pragma pack() 字節對齊問題

cnblogs 變量 .html 排列 ima 對齊 1-1 整數 blog

項目需要,需要spiflash存一些數據(包含結構體變量、數組等),讀寫接口需要封裝的相對靈活
(協議棧、交互變量、狀態機參數等,在掉電重啟後能夠按需求恢復),數據項存儲偏移地址需要
較精確,所以存儲結構體變量類型都用__packed修飾防止編譯器填充字節,調試時候發現函數中訪
問結構體中某些長整型變量會導致hardfault_handler!所以排列結構體變量時候還是要養成好習慣,
總結2個原則:

1.長字節放在前邊
2.單字節放前邊要保持是長字節整數倍(不夠可以補保留字節)

技術分享

附上兩個鏈接:

博客園King先生 http://www.cnblogs.com/King-Gentleman/p/5940480.html
正點原子

http://www.openedv.com/thread-7415-1-1.html

cortex-M權威指南要好好翻翻了。

_packed / #pragma pack() 字節對齊問題