終於讓我逮到領導的小尾巴,由於 DSP 的架構和 ARM 不同,DSP 的字節 (byte) 就是 16 位的,這導致結構體相關的對齊情況以及 sizeof () 的結果不同。
另外堅決反對 memset () 以及 memcpy () 這類標準庫函數的他,堅持要手動循環進行批量操作。為了降低成本將軟體在移植到 ARM 晶片平台上時產生問題。這個問題甚至 AC6 編譯器不會出現 ( Os ),在 GCC 開 Os 優化時會展現出來。
如果老老實實用 sizeof () memset () 這樣的標準庫組合則不會產生這樣的問題,因為他們都是以字節 (byte) 為參考單元的。給公司當奴隸的專案中要求還是沒有用,不過我自己的開源庫都是很審慎地使用了,其實會使軟體庫的相容性增強。
此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://www.yono233.cn/notes/26