Mono中的数组是否自然对齐?

时间:2013-10-06 21:06:35

标签: mono clr

CLR的Mono实现中数组对齐的情况如何?它们是否保证在所有平台上自然对齐?如果不是,在哪些平台上可以安全地假设CLR管理的阵列自然对齐?

有关SO的两个相关问题:

我正在寻找关于Mono框架的类似信息。

1 个答案:

答案 0 :(得分:2)

对于长数组和双数组,我们保证数组元素在64位平台上自然对齐。

在32位平台上,它们碰巧也是自然对齐的,这也不太可能改变,因为一些32位架构也需要对齐双精度,我们将保持代码在它们上保持一致。

请注意,您希望您的库支持从数组中的任何索引开始处理,并且由于您使用的是需要16字节对齐的SIMD指令,因此您始终需要在开头/结尾处检查并执行标量处理。数据无论如何。

对于结构/类中的长字段和双字段,所有32位系统都不能保证对齐,它取决于ABI,但它至少是32位。