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 位浮点数完成。
就 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 位浮点数完成。