我正在跟踪Beej网络编程指南,我使用的是VC++ 2010,但是当我将结构粘贴到我的程序中时,其中一些类型会显示为不正确的标识符。例如:
u_int32_t就是这样提出的,经过一番搜索,我发现这些都是1999年前后C语言中的老类型。我本可以包括stdint.h,但这需要我记住它们的意思。相反,我使用了标准的int( 32位长(4字节)),而对于64位长(8字节)的标准int,我使用了long long int。
无论如何,我正在缩小到我的上一个语法错误,它说sa_family_t是一个无效的标识符。我不知道它应该是什么,搜索什么也找不到。这是我的问题,我不知道应该为类型标识符指定什么。
另一件困扰我的事情是:char __ss_pad1[_SS_PAD1SIZE];,SS_PAD1SIZE,那个红色的东西也是无效的。
发布于 2012-08-12 17:21:03
T应该是一个无符号整数。的头文件不符合这个标准。H将sockaddr结构定义如下:
struct sockaddr {
u_short sa_family; /* address family */
char sa_data[14]; /* up to 14 bytes of direct address */
};因此,要编译您的代码,您需要自己动手编写sa_family_t。
https://stackoverflow.com/questions/11924068
复制相似问题