gpt4 book ai didi

c - 运行此代码片段需要哪些头文件?

转载 作者:行者123 更新时间:2023-11-30 18:08:59 26 4
gpt4 key购买 nike

来自here ,但编译失败:

int main(int argc, char **argv)
{
struct hostent {
char *h_name; // main name
char **h_aliases; // alternative names (aliases)
int h_addrtype; // address type (usually AF_INET)
int h_length; // length of address (in octets)
char **h_addr_list; // alternate addresses (in Network Byte Order)
};
#define h_addr h_addr_list[0] // First address of h_addr_list.


struct hostent *info_stackoverflow;
int i = 0;
info_stackoverflow = gethostbyname( "www.stackoverflow.com" );
printf("The IP address of %s is %s",
info_stackoverflow->h_name,
inet_ntoa( * ((struct in_addr *)info_stackoverflow->h_addr )));
/* aliases */
while( *(pc_ip->h_aliases + i) != NULL )
{
printf("\n\tAlias: %s", *(pc_ip->h_aliases + i) );
i++;
}
}

最佳答案

#include <stdio.h>
#include <winsock.h>

尽管 struct hostent 已由 Winsock 定义,因此您需要从代码片段中删除 hostent 的定义。

正如 dmazzoni 所指出的,该代码中未声明 pc_ip。它的使用方式类似于指向 hostent 结构的指针,因此您可以将 pc_ip 替换为 info_stackoverflow

链接时,您需要链接到 ws2_32.lib。在运行时,您可能会遇到问题,直到您添加对 WSAStartup 的调用。在代码的开头,和 WSACleanup最后,在从 main 返回之前。

关于c - 运行此代码片段需要哪些头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2937714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com