摘自winsock2.h:
#define FD_SET(fd, set) do { u_int __i;\
for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\
if (((fd_set *)(set))->fd_array[__i] == (fd)) {\
break;\
}\
}\
if (__i == ((fd_set *)(set))->fd_count) {\
if (((fd_set *)(set))->fd_count < FD_SETSIZE) {\
((fd_set *)(set))->fd_array[__i] = (fd);\
((fd_set *)(set))->fd_count++;\
}\
}\
} while(0)
我正在传入fd
typeint
和set
type fd_set *
。看起来警告的原因可能来自 #define for FD_SETSIZE
。同一标题的另一个摘录:
#ifndef FD_SETSIZE
#define FD_SETSIZE 64
#endif
我在包含 winsock2.h 之前重新定义FD_SETSIZE
了,64U
但这似乎并没有解决它。