Emscripten 允许对齐不同的数据类型

Emscripten allowed alignments for different datatypes

就 emscripten 的对齐而言,哪些是允许的,哪些是不允许的?

我猜一个 int 应该有一个低 2 位 == 0 的地址。

字符怎么样?它的地址也应该有低两位 == 0 吗?还是可以在所有地址?

加倍或 int64_t 怎么样?最低两位 == 0 足够还是应该是最低 3 位 == 0 ?

我的一个朋友刚刚告诉我: 要求是遵循类型的标准 C 对齐规则。这表示每种类型都应该在一个地址对齐,该地址是所讨论类型大小的倍数。

https://en.wikipedia.org/wiki/Data_structure_alignment#Typical_alignment_of_C_structs_on_x86

浮点数在 emscripten 中总是存储为 32 位浮点数。 -s PRECISE_FP32=0 或 2 仅以 64 位进行计算,但存储仍以 32 位浮点数完成。