omnet++ - 是否可以在 OMNET++ 中的参数表达式中进行强制转换?
问题描述
我在 OMNET++ 中有一段相当简单的代码,它从用户那里获取一个参数并用它来决定其他几个参数
network ExampleNetwork
{
parameters:
int k;
int variable = (k / 2);
...
}
此代码将正确构建,但运行时会出现错误消息:
'无法评估参数'测试'。不能将 1 从 double 类型转换为 integer(注意:没有从 double 到 int 的隐式转换)'
其中“1”是 k/2 的值。
似乎解决此问题的方法是将表达式的结果显式转换为 int 但我找不到任何说明如何在 NED 文件中执行此操作的文档。
有谁知道它们是怎么写的?
我相信这适用于早期版本的 OMNET++。我现在在 Ubuntu 上使用 5.4 版。
解决方案
很抱歉用简单的“RTFM”回答,但这是最有效的:https ://omnetpp.org/doc/omnetpp/manual/#sec:ned-functions:category-conversion
从 OMNeT++ 5.3 开始,double
值不再被int
隐式转换为。
使用该int
函数,如下所示:int variable = int(k / 2)
;