结构的大小?

时间:2015-12-12 22:56:14

标签: c sockets struct

我正在进行UNIX套接字练习并尝试创建类似于流套接字example的套接字,但我意识到在示例代码中,传递给memset()的第3个参数是{ {1}} sizeof

struct

其中memset(&addr, 0, sizeof(struct sockaddr_un)); 在程序开头声明为addr的定义。程序如何知道struct sockaddr_un一个尚未初始化的结构?因为当我在程序中做同样的事情时,GCC给了我一个错误。感谢。

1 个答案:

答案 0 :(得分:3)

  

程序如何知道尚未实例化的结构的大小?

sizeof(int)sizeof(char)等相同。在应用sizeof之前,您不需要变量进行初始化,您只需要变量的类型。

  

因为当我在我的程序中做同样的事情时,GCC给了我一个错误。

在您的情况下,检查您是否包含适用于Unix套接字的标头:

   #include <sys/socket.h>
   #include <sys/un.h>