Importc 编译指示
importc 编译指示提供了一种从 C 语言导入程序或变量的方法。可选参数是一个包含 C 标识符的字符串。如果没有这个参数,C 名称就和 Nim 的标识符 一字不差:
proc printf(formatstr: cstring) {.header: "<stdio.h>", importc: "printf", varargs.}
当 importc 应用于 let 语句时不需要提供值,因为这时期望从 C 取得值。这个用法能够导入 C const:
{.emit: "const int cconst = 42;".}
let cconst {.importc, nodecl.}: cint
assert cconst == 42
注意,这个编译指示曾在 JS 后端滥用,用来导入 JS 对象和函数。其他后端也支持这个编译指示,功能相同。另外,当目标语言不是 C 时,还有其他的编译指示:
传递给 importc 的字符串字面量可以是一个格式化字符串:
proc p(s: cstring) {.importc: "prefix$1".}
在示例中, p 的外部名称被设置为 prefixp 。只有 $1 可用,并且必须将字面美元符号写为 $$ 。
当前内容版权归 vectorworkshopbaoerjie 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 vectorworkshopbaoerjie .