我正在制作一个可靠的数据传输协议并拥有功能原型
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
anint
和packet.payload
是 a在哪里struct pkt
,我收到错误“未定义对 的引用'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]);