Align 编译指示
align 编译指示是针对变量和对象字段成员的,用于修改所声明的实体的字节对齐要求。其参数必须是常数,是 2 的整数次幂。同一个声明存在多个有效的非 0 对齐的编译指示时,较弱的编译指示会被忽略。与类型的对齐要求相比,较弱的对齐编译指示的声明也会被忽略。
type
sseType = object
sseData {.align(16).}: array[4, float32]
# 每个对象都按 128 字节边界对齐
Data = object
x: char
cacheline {.align(128).}: array[128, char] # 超量对齐的字符数组
proc main() =
echo "sizeof(Data) = ", sizeof(Data), " (1 byte + 127 bytes padding + 128-byte array)"
# 输出: sizeof(Data) = 256 (1 byte + 127 bytes padding + 128-byte array)
echo "sseType 的对齐长度是 ", alignof(sseType)
# 输出: sseType 的对齐长度是 16
var d {.align(2048).}: Data # Data 的这个实例的对齐要求更加严格
main()
这种编译指示对 JS 后端没有任何影响。
当前内容版权归 vectorworkshopbaoerjie 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 vectorworkshopbaoerjie .