我想提出一個可靠的數據傳輸協議和具備的功能原型C編譯 - 「未定義引用」?
void tolayer5(int, char data[]);
隨着structs
struct msg {
char data[20];
};
struct pkt {
int seqnum;
int acknum;
int checksum;
char payload[20];
};
而當我把這種格式的功能:
tolayer5(A, packet.payload);
在哪裏A
是int
和packet.payload
是struct pkt
,我得到了err或「未定義的參考'tolayer5(int, char*)'
。你能幫我看看我在這裏錯過了什麼嗎?
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");
}
}
謝謝大家與原來的問題幫助! :)然而,當我試圖解決這個問題時,我遇到了一個無限循環,我認爲這與我對一個數組中的字符進行錯誤地處理有關(這已經過去了一段時間,因爲我已經完成了C
這樣的事情。你能幫我找到在哪裏我創建一個無限循環
我已經更新上面的代碼是什麼,我現在工作的通知的主要變化已經給我的功能:?
void tolayer5(int AorB, char data[])
而此行的內部功能:printf("%c",msgReceived.data[i]);
從現在開始它只是:
printf("%c",data[i]);
這是一個鏈接錯誤,你確定你也在執行'void tolayer5(int,char data []);'? – orlp
是在您的項目中實現tolayer5的c文件。 – drescherjm
重新編輯:您的原型與其實現不兼容。 char [] vs結構味精。 –