2012-12-21 28 views
0

代码套接字编程:这里有什么问题?

struct sockaddr_in ser; 
... 
#line 68 
fprintf(stderr, "Can't find host %s\n", inet_ntoa(ser.sin_addr)); 

编译器(gcc ...)警告

68: warning: format '%s' expects type 'char *', but argument 3 has type 'int' 

但 “INET_NTOA()” 不应该返回 “的char *”,对不对?

+2

好的,缺少#include ,但是已经采取的默认设置是什么,它在哪里? – user180574

回答

2

默认情况下,没有活动原型的函数返回int。此行为在ISO C标准中(至少在C90中)中指定。

您需要将头文件包含在声明该函数的位置,以便编译器具有正确的原型。