我正在使用Omnet ++并编写C ++代码。我的文件中有以下声明:

channel Link extends ned.DatarateChannel
{
    datarate = 16Gbps; // 32 lines of 2ns clock
    delay = 0us;
}


在模块的.cc文件中,我正在编写以下函数:

void InPortAsync::getErrorTimeout(int sx, int sy, int rx, int ry, int dx, int dy, int &routerType, simtime_t &timeout)
{   // find the flight time for packet from this node to the next joint node = TTL in queue
    int dir0 =-1;
    int dir1 =-1;
    int temprx = -1;
    int tempry = -1;
    int outPort = -1;
    int destRouterType, destTimeout;
    Link* temp_Channel;
    ...
}


很明显,我在声明一个指向temp_Channel的Link对象的指针。但是,编译器返回以下错误:
在此范围内未声明“ temp_Channel”

GCC为什么不理解我的声明?

提前致谢!

最佳答案

在NED文件中声明Link通道与C ++代码无关。它不会生成任何标头或可包含在代码中的C ++类。实际上,NED文件仅在运行时处理,而不在编译时处理。

关于c++ - 在Omnet++中,C++认为变量是一个函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41963176/

10-11 23:10
查看更多