gpt4 book ai didi

c++ - 什么是 sa_family_t

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:37 27 4
gpt4 key购买 nike

我正在关注 Beej's Guide to Network Programming ,并且我使用的是 VC++ 2010,但是当我将结构复制粘贴到我的程序中时,某些类型会作为不正确的标识符出现。例如:

u_int32_t 就是这样出现的,经过一些搜索我发现这些是 C 语言大约 1999 年的旧类型。我本可以包含 stdint.h,但这需要我记住它们的意思。相反,我使用了标准的 int,它是 32 位长(4 字节),而对于其他的 64 位长(8 字节),我使用了 long long int.

无论如何,我正在缩小我的最后一个语法错误,它说 sa_family_t 是一个无效的标识符。我不知道它应该是什么,搜索也没有任何结果。那是我的问题,我不知道应该为此指定什么类型标识符。

另一件困扰我的事情是:char __ss_pad1[_SS_PAD1SIZE]; SS_PAD1SIZE 也以红色显示为无效。

最佳答案

sa_family_t should be an unsigned integer. Windows 头文件不符合该标准。 Winsock.h 定义 sockaddr 结构如下:

struct sockaddr {
u_short sa_family; /* address family */
char sa_data[14]; /* up to 14 bytes of direct address */
};

因此,要编译您的代码,您需要自己输入 typedef sa_family_t。

关于c++ - 什么是 sa_family_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11924068/

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