读书人

extern声明结构体的有关问题

发布时间: 2012-04-08 14:38:30 作者: rapoo

extern声明结构体的问题
我在main()函数所在文件(文件1)中声明一个系统定义的结构体
#include<netinet/in.h>
struct sockaddr_in clientSockaddr;

在另一个文件(文件2)中声明
#include<netinet/in.h>
extern struct sockaddr_in clientSockaddr;

但是在联合编译时,提示文件2里面undefined reference to `clientSockaddr'
如果我删掉文件2中的外部声明,当然更不行,编译时提示‘clientSockaddr’ undeclared (first use in this function),我只是想说这个提示和有外部声明时是有区别的

请问我该怎么做,以使得在文件2中能够使用文件1中的结构体?

[解决办法]
在文件2中有sockaddr结构体的定义吗??
[解决办法]
顶二楼。
struct sockaddr_in
最好定义在一个头文件上两个文件都包含那个头文件省了重复定义多个结构相同的结构体。同步也方便。

读书人网 >C语言

热点推荐