Ich benutze Omnet ++ und schreibe den C++ - Code. Ich habe die folgende Erklärung in meiner ned Datei:in Omnet ++, C++ denkt, Variable ist eine Funktion
channel Link extends ned.DatarateChannel
{
datarate = 16Gbps; // 32 lines of 2ns clock
delay = 0us;
}
Inside my Moduls .cc Datei, ich schreibe die folgende Funktion:
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;
...
}
Es ist klar, ich einen Zeiger auf ein Link-Objekt bin erklärt benannte temp_Channel. Allerdings gibt der Compiler den folgenden Fehler: ‚temp_Channel‘ wurde nicht in diesem Bereich erklärt
Warum GCC nicht meine Erklärung verstehen?
Vielen Dank im Voraus!
Haben Sie vergessen, den richtigen Header für 'Link' einzubinden? Sind Sie sicher, dass der Fehler von der Zeile kommt, die Sie uns zeigen, und nicht von einer anderen? – nwp
Ist es wirklich C++? – SergeyA
Ich habe noch nie Omnet verwendet, aber ich denke, die NED-Datei muss verwendet werden, um eine .h-Datei zu generieren, die die Definition von Link enthält. Existiert eine solche Datei? Hast du es aufgenommen? Immer noch seltsam, dass GCC auf 'temp_Channel' statt auf' Link' drosselt. –