ついにリーダーの小さな尾を捕まえました。DSP のアーキテクチャは ARM とは異なり、DSP のバイト (byte) は 16 ビットです。これにより、構造体に関連するアライメントの状況や sizeof () の結果が異なります。
また、memset () や memcpy () といった標準ライブラリ関数に対しては断固反対し、手動でループを使ってバルク操作を行うことを主張しています。コストを削減するために、ソフトウェアを ARM チッププラットフォームに移植する際に問題が発生します。この問題は、AC6 コンパイラでは発生しませんが (Os)、GCC の最適化時に現れます。
もし素直に sizeof () や memset () といった標準ライブラリの組み合わせを使用すれば、このような問題は発生しません。なぜなら、彼らはすべてバイト (byte) を基準単位としているからです。会社の奴隷としてのプロジェクトでは要求があっても効果はありませんが、私自身のオープンソースライブラリでは非常に慎重に使用しています。実際、これによりソフトウェアライブラリの互換性が向上します。
この記事は Mix Space によって xLog に同期更新されました。原始リンクは https://www.yono233.cn/notes/26