在我的 TCL 命令的 C 端实现中,例如,在以下签名中:
myfunc(ClientData c, Tcl_Interp *interp, int objc, Tcl_Obj * const objv[]);
我发现有时候objc大于传入的参数个数,对应的objv值不是“0”就是“1”。
我在谷歌搜索中找不到任何报告此类问题,应该在我的 TCL 方面有问题,但不知道是怎么回事。
我的 TCL 端使用 2 个参数或 3 个参数调用命令 -
myfunc arg1 "word1 word2"
<... some code ...>
myfunc arg1 "" "checker1 checker2"
第一次调用是 2 个参数,接下来是 3 个参数。
我提到的问题是当我期望 2 个参数时,我看到“objc”是 3,而“objv[3]”是“0”或“1”。