TCL-objc向C端再传递1个伪值
在TCL命令的C端实现中,例如,在以下签名中: myfunc(客户端数据c、Tcl_Interp*Interp、int objc、Tcl_Obj*const objv[]) 我发现有时objc大于传入的参数数量,相应的objv值为“0”或“1” 我在谷歌上找不到任何关于这类问题的报道,我的TCL方面应该有问题,但我不知道为什么 我的TCL端使用2个参数或3个参数调用命令-TCL-objc向C端再传递1个伪值,tcl,Tcl,在TCL命令的C端实现中,例如,在以下签名中: myfunc(客户端数据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
myfunc arg1 "word1 word2"
<... some code ...>
myfunc arg1 "" "checker1 checker2"
myfunc arg1“word1 word2”
myfunc arg1“checker1 checker2”
第一个调用是2个参数,接下来是3个参数
我提到的问题是,当我需要2个参数时,我看到“objc”是3,“objv[3]”是“0”或“1”。我不知道这是否是您的问题(可能是打字错误),但当objc只有3时,objv[3]是无法访问的,因为当计数为3时,最大可访问索引是2。您应该从objv[0]开始访问数组内容。我不知道这是否是您的问题(可能是打字错误),但当objc只有3时,objv[3]是无法访问的,因为计数为3时,最大可访问索引是2。你应该从objv[0]开始访问数组内容。是的,天哪,我今天脑子短路了。谢谢嗯,
objv[0]
应该是被调用的命令的名称(用于生成错误消息)。是的,天哪,我今天脑子短路了。谢谢嗯,objv[0]
应该是被调用的命令的名称(用于生成错误消息)。