Ich mache ein zuverlässiges Datenübertragungsprotokoll und die Funktion PrototypC kompilieren - "undefinierter Bezug auf"?
void tolayer5(int, char data[]);
Mit den structs
struct msg {
char data[20];
};
struct pkt {
int seqnum;
int acknum;
int checksum;
char payload[20];
};
Und wenn ich rufe die Funktion in diesem Format:
tolayer5(A, packet.payload);
Wo A
ist ein int
und packet.payload
ist ein struct pkt
, ich bekomme den Fehler oder "undefinierter Verweis auf 'tolayer5(int, char*)'
. Kannst du mir helfen zu sehen, was ich hier vermisse?
void tolayer5(int AorB, char data[])
{
int i;
if (TRACE>2)
{
printf("TOLAYER5: data received:");
for (i=0; i<20; i++)
printf("%c",data[i]);
printf("\n");
}
}
Vielen Dank an alle mit dem ursprünglichen Problem für die Unterstützung! :) Als ich versuchte, diesen Fehler zu beheben, stieß ich jedoch auf eine Endlosschleife, von der ich denke, dass sie etwas damit zu tun hat, dass ich Zeichen in einem Array falsch adressiere (es ist eine Weile her, dass ich so vorgegangen bin. Kannst du mir helfen?) finden, wo ich eine Endlosschleife bin Erstellen
ich den obigen Code aktualisiert haben, was bin ich jetzt mit Arbeits Beachten Sie die wichtigsten Änderungen an meiner Funktion gewesen sein:?.
void tolayer5(int AorB, char data[])
Und diese Linie im Inneren die Funktion: printf("%c",msgReceived.data[i]);
seit jetzt ist es gerade:
printf("%c",data[i]);
Dies ist ein Verknüpfungsfehler, sind Sie sicher, dass Sie auch in der Implementierung für 'void tolayer5 (int, char data []) verknüpfen;'? – orlp
Ist die c-Datei, die toolayer5 in Ihrem Projekt implementiert. – drescherjm
zu Ihrer Bearbeitung: Ihr Prototyp ist mit seiner Implementierung nicht kompatibel. char [] vs Struktur msg. –