私は C# のバックグラウンドを持っています。私は C のような低レベル言語の初心者です。
C# では、struct
のメモリはデフォルトでコンパイラによって配置されます。コンパイラは、データ フィールドの順序を変更したり、フィールド間に追加のビットを暗黙的に埋め込むことができます。そのため、正確なレイアウトのためにこの動作をオーバーライドするために、特別な属性を指定する必要がありました。
struct
私の知る限り、Cはデフォルトでaのメモリレイアウトを並べ替えたり整列したりしません。ただし、見つけるのが非常に難しい小さな例外があると聞きました。
C のメモリ レイアウト動作とは何ですか? 何を並べ替え/整列する必要がありますか?