大小指示
Nim 会自动确定枚举的大小。但是,当包装 C 枚举类型时,它必须具有特定的大小。 size pragma 允许指定枚举类型的大小。
type
EventType* {.size: sizeof(uint32).} = enum
QuitEvent,
AppTerminating,
AppLowMemory
doAssert sizeof(EventType) == sizeof(uint32)
size pragma 还可以指定 importc 不完整对象类型的大小,这样即使在没有声明字段的情况下,也可以在编译时获取其大小。
type
AtomicFlag* {.importc: "atomic_flag", header: "<stdatomic.h>", size: 1.} = object
static:
# 如果 AtomicFlag 没有使用 size 指示,则此代码将导致编译时错误。
echo sizeof(AtomicFlag)
size pragma 只接受 1、2、4 或 8 的值。
当前内容版权归 vectorworkshopbaoerjie 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 vectorworkshopbaoerjie .