编译期的 define 编译指示
这里列出的编译指示可以用来在编译时接收来自 -d/-define 命令行参数的值。
当前提供了以下编译指示 (以后可能增加)。
编译指示 | 描述 |
---|---|
intdefine | 在编译时将 define 读取为整数类型 |
strdefine | 在编译时将 define 读取为字符串类型 |
booldefine | 在编译时将 define 读取为布尔类型 |
const FooBar {.intdefine.}: int = 5
echo FooBar
nim c -d:FooBar=42 foobar.nim
在上述例子中,-d 标志在编译时覆盖 FooBar 的默认值,打印出 42。如果删除 -d:FooBar=42:option:,则使用默认值5。可以使用 defined(FooBar) 判断是否为它提供了值。
语法 -d:flag 实际上是 -d:flag=true 的简写。
这些指示还接受一个可选的字符串参数,用于限定定义名称。
const FooBar {.intdefine: "package.FooBar".}: int = 5
echo FooBar
nim c -d:package.FooBar=42 foobar.nim
这有助于消除不同包中定义名称的歧义。
还请参阅 generic `define` pragma,该版本的指示可以基于常量值检测定义的类型。
当前内容版权归 vectorworkshopbaoerjie 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 vectorworkshopbaoerjie .