首先先定义一个结构体类型,假如是struct structep{…..},注意这是类型,structep这种类型,在哪里定义这是后话。
然后再说结构体变量(区分结构体类型和结构体变量)。
结构体变量跟普通变量一样,先在一个源文件中定义一个结构体变量(struct structep ep1),再在一个头文件中声明结构体变量(extern struct strucep ep1),其余需要引用这个结构体变量的源文件只要包含这个头文件就可以了。
似乎完事了,但是我们必须要看到一个问题,就是其余源文件虽然引用了声明(extern struct strucep ep1),但是他们不认识structep这种类型,这种structep类型其实就像int一样,关键这些源文件怎么知道structep是一个和int类似的类型呢。所以这些源文件中需要一个类型定义(struct structep{…..})。我们就可以把结构体的类型定义也放在那个头文件中,让源文件包含其即可,这里我想在链接的时候类型定义是不存在重复定义的吧(个人感觉)。
所以最后结构如下,一个源文件(a.c)中定义结构体变量(struct structep ep1),一个头文件(a.h)中定义这个结构体类型(struct structep{…..})以及声明那个结构体变量(extern struct strucep ep1),需要使用这个结构体变量的(包括a.c)包含这个这个头文件即可。
这只是个人总结,如有错误请大家指出~~~~