作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 C99 中使用什么逻辑来对齐可变长度数组 (VLA)?
我正在考虑为具有未知对齐要求的任意对象在堆栈上分配存储空间,因此需要最严格的对齐方式。我宁愿避免 alloca()
而使用 (char
) VLA,因为它们更标准化。
我对 GCC 的测试未能证明它们在小于 16 字节的任何内容上对齐。
最佳答案
VLA 的排列方式与普通阵列相同。
这意味着如果您想直接访问该整数,分配 char
数组并将 int
存储到其中是行不通的。
您可以使用 _Alignof
来确定类型的对齐方式并手动计算所需的调整,但即便如此,它充其量也是定义的实现。
我相信您可能必须在编译器上禁用严格别名才能使其正常工作。
关于c - 可变长度数组如何在 C 中对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34046882/
我是一名优秀的程序员,十分优秀!