有什么办法可以防止变量的对齐度超过其最低要求的对齐度?

问题描述 投票:0回答:1

由内存对齐度不足引起的问题似乎经常是随机出现的,因为事情可以通过巧合正确对齐,直到你改变一些无关的东西。有没有一个编译器标志或其他方法可以把这些问题全部隐藏起来?我希望它能确保类型永远不会比它们必须的更对齐。例如,在x86上,地址为 char的地址永远是奇数,而 "我 "的地址也是奇数。ints将永远是≡4 (mod 8)。(很明显,这将会浪费内存,而且可能会使程序更慢,所以我不会在发行版中启用它。)

编辑:为了澄清,这应该只影响数组的起始地址和 struct的,而不是它们的内部布局(后者会破坏基本所有东西的兼容性,这是我绝对不希望看到的)。

c debugging memory-alignment compiler-flags compiler-options
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.