error: pointer targets in passing argument 1 of ‘sscanf’ differ in signedness [-Werror=pointer-sign] sscanf(packet,"%s%s%s%s%s",serial.head,serial.checkSum, \
时间: 2024-02-09 21:09:21 浏览: 126
K8S集群ssl证书监控ssl-exporter资源清单及镜像文件
5星 · 资源好评率100%
这个错误是因为在调用 sscanf 函数时,传入的参数类型与函数声明的参数类型不匹配。具体来说,这个错误是由于指针的有符号性不匹配导致的。
通常情况下,我们使用 %s 格式化字符数组时,需要传入一个 char* 类型的指针。然而,如果在调用 sscanf 函数时,传入的指针类型是有符号的,而函数参数声明的类型是无符号的,就会出现这个错误。
要解决这个问题,您可以通过将指针类型转换为正确的类型来消除错误。具体做法是,在调用 sscanf 函数时,将传入的指针类型强制转换为正确的类型,如下所示:
```
sscanf((char*)packet,"%s%s%s%s%s",serial.head,serial.checkSum, ...)
```
在这个示例中,我们将 packet 指针强制转换为 char* 类型,在调用 sscanf 函数时,就可以消除指针有符号性不匹配的错误。
阅读全文