【发布时间】:2017-11-21 18:23:25
【问题描述】:
如何修复 gcc (Debian 4.9.2-10) 4.9.2 编译器警告
警告:从“ssize_t”转换为“size_t”可能会改变 结果 [-Wsign-conversion] recv_len = recvfrom(my_socket, *buf, MESSAGE_MAX_LEN, 0, (struct sockaddr *)&remote_addr, &addr_len);
代码:
int my_socket;
struct sockaddr_storage remote_addr;
socklen_t addr_len = sizeof(remote_addr);
void
socket_listen(
int (*callback )(),
char ** buf)
{
size_t recv_len;
...
*buf = malloc(MESSAGE_MAX_LEN);
recv_len = recvfrom(my_socket, *buf, MESSAGE_MAX_LEN, 0, (struct sockaddr *)&remote_addr, &addr_len);
...
}
【问题讨论】:
-
这不是很明显吗?使用
ssize_t作为您的recv_len:o -
回滚您的编辑,因为现有答案是指
recv_len的声明类型不正确。如果您再次编辑它,请确保不要破坏它。
标签: c