【问题标题】:Is casting possible in parameter expressions in OMNET++?是否可以在 OMNET++ 中的参数表达式中进行强制转换?
【发布时间】:2018-06-15 12:33:32
【问题描述】:

我在 OMNET++ 中有一段相当简单的代码,它从用户那里获取一个参数并用它来决定其他几个参数

network ExampleNetwork
{
    parameters:
         int k;
         int variable = (k / 2);

    ...
}

此代码将正确构建,但运行时会出现错误消息:

'无法评估参数'test'。不能将 1 从 double 类型转换为 整数(注意:没有从 double 到 int 的隐式转换)'

其中“1”是 k/2 的值。

似乎解决此问题的方法是将表达式的结果显式转换为 int,但我找不到任何说明如何在 NED 文件中执行此操作的文档。

有人知道它们是怎么写的吗?

我相信这适用于早期版本的 OMNET++。我现在在 Ubuntu 上使用 5.4 版。

【问题讨论】:

    标签: omnet++


    【解决方案1】:

    很抱歉用简单的“RTFM”回答,但这是最有效的:https://omnetpp.org/doc/omnetpp/manual/#sec:ned-functions:category-conversion

    自 OMNeT++ 5.3 起,double 值不再隐式转换为 int

    使用int函数,像这样:int variable = int(k / 2);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 2019-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多