在NS2,做实验的时候,为了能通过循环配合传值实验,一直找不到tcl传参给c++的方法,网上的只po出一部分看不懂,只能通过源码自己研究。最后的解决办法就是,模仿源码的操作,以下通过tcl→ex→sat-iridium.tcl为例子,只需要简单两步。
问题1:tcl传参给c++
首先,通过观察可以发现,tcl的例子文档里已经是有可以输入参数的例子,然后接下来就是通过其变量名字,例如“data_driven_computation”,找到其位置,再自定义一个变量即可。
经过一番努力,找到如下位置,然后下面两个q0_
、q02_
就是本人自定义的变量了,接着还没完,还要去.h
文件声明一下
然后 通过ctrl点击一下变量就跳转到这个文件
再这下面,也学着定义一下
最后就是在tcl文件里面 定义一下,大功告成!!然后就可以直接在C++文件调用该设置的值了。
用法的话,可以通过传参配合switch语法,选择算法函数,这样就不用每次都得通过注释切换函数。
问题2:c++传参给tcl
通过Ctrl+F查找tcl,发现很多这样的表达,原来这就是在c++执行tcl接口,字符串的内容就是tcl命令。
所以,首先定义在tcl定义一个变量,注意两个变量顺序
然后在command里面定义,学着上面并定义调用即可。
最后通过结果可以看出,传参成功。
用处:通过参回去给,确认在调用什么函数,例如多个算法性能比较时,可以在运行前确认算法是否正确被调用。