Critcl:程序中的参数

Critcl : args in procedure

我想用带有 Critcl 的 C 程序替换 Tcl 程序。
Tcl 程序:

proc myProc {args} {...}

关键程序:

critcl::cproc myProc {Tcl_Interp* interp Tcl_Obj* data} ok {...}

这就是我的使用方式:

myProc $value_1 $value_2 $value_3 ...

我的问题:
如何避免此错误 *wrong # args: should be "myProc data"*,以便将我的值分组到列表中并分配给 data

您可以尝试使用 ccommand 而不是 cproc,这样您就可以获得值的直接数组(前提是您跳过第一个单词,这将是命令名称)。 https://wiki.tcl-lang.org/page/Critcl+Examples 的 wiki 上有一个这样的示例,但您可能还需要 Tcl_NewListObj 才能真正将列表作为一个实体。