Exportc 编译指示

exportc 编译指示提供了一种将类型、变量或过程导出到 C 的手段。枚举和常量不能导出。可选参数是包含 C 标识符的字符串。如果参数缺失,C 名字就和 Nim 标识符 一字不差 :

  1. proc callme(formatstr: cstring) {.exportc: "callMe", varargs.}

请注意这个编译指示的名称有点用词不当: 因为其他后端也通过这个名称提供了相同功能。

传递给 exportc 的字符串字面量可以是一个格式化字符串:

  1. proc p(s: string) {.exportc: "prefix$1".} =
  2. echo s

在示例中, p 的外部名称被设置为 prefixp 。只有 $1 可用,并且必须将字面美元符号写为 $$ 。

如果该标识符也应被导出到一个动态库中,除了使用 exportc 编译指示外, 还应该使用 dynlib 编译指示。参阅Dynlib 编译指示应用于导出