我正在使用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/