如何在C中使用GethostByName
-
25-10-2019 - |
题
我正在尝试使用函数GethostByName,但是我的代码:
int handleTCP(char *hostname, char* portNo){
struct hostent *hp = gethostbyname(hostname);
...
}
继续返回:
21: warning: initialization makes pointer from integer without a cast
有人知道我的语法怎么了吗?
谢谢
解决方案
你忘了 #include <netdb.h>
. 。因为您没有包含此文件,所以您遇到了“默认INT”规则。基本上,在C中,如果一个函数没有原型,则假定为:
int function_name();
换句话说,“返回int,获取未知数的参数”。
正确声明功能原型(在这种情况下,包括标头)将避免这种情况。
其他提示
我想你忘了包括 netdb.h
标题文件,因此编译器一无所知 gethostbyname
功能并假设它返回整数。然后是投诉,因为在这种情况下,您会将整数转换为指针。您需要包含一个标题,以向编译器提供正确的类型信息。
不隶属于 StackOverflow