2012-12-21 62 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中)中指定。

您需要將頭文件包含在聲明該函數的位置,以便編譯器具有正確的原型。