pragma编译指示

pragma 编译指示可用于声明用户定义的编译指示。 这很有用,因为Nim的模板和宏不会影响编译指示。 用户定义的编译指示与所有其他符号在不同的模块范围内。 它们无法从模块导入。

示例:

  1. when appType == "lib":
  2. {.pragma: rtl, exportc, dynlib, cdecl.}
  3. else:
  4. {.pragma: rtl, importc, dynlib: "client.dll", cdecl.}
  5.  
  6. proc p*(a, b: int): int {.rtl.} =
  7. result = a+b

在该示例中,引入了名为 rtl 的新编译指示,该编译指示从动态库导入符号或导出用于动态库生成的符号。