我正在尝试使用函数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 功能并假设它返回整数。然后是投诉,因为在这种情况下,您会将整数转换为指针。您需要包含一个标题,以向编译器提供正确的类型信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top