我正在开发一个处理外部硬件通信的应用程序,但在获取包的校验和时遇到问题。(我在制作这个应用程序时仍在学习目标 C,所以我在这方面还是相当新的。)在另一个用 C 编写的代码中,校验和是这样计算的:
byte CalculateCheckSum (byte txcount){
byte local_cs=0;
while(txcount>0){
local_cs+=*x_ptr;
x_ptr += 1;
txcount--;
};
return (~local_cs+1);
}
我尝试将一些代码用于目标 C:
u_int8_t synByteSOH[]= {SYN,SYN,SOH,SETSERIALINFO};
- (Byte)CalcCheckSum:(Byte)i
{ u_int8_t synByteSOH[]= {SYN,SYN,SOH,SETSERIALINFO};
Byte local_cs = 0;
int j = 0;
while (i>0) {
local_cs += synByteSOH[j];
i--;
j++;
};
return (~local_cs+1);
}
没有警告或错误,但据说 clang: error: linker command failed with exit code 1 有谁知道这是为什么?我应该如何解决它?