关于结构体的问题

2019-07-20 08:39发布



之前都是看书,看程序源码分析程序为主,没上手写综合性的程序。最近打算写一个综合性的程序遇到一些问题。
比较简单的都百度搜索,看书都弄通了。今天有个问题一直没弄懂。百度搜索不知道怎么组织语言。搜不到我要的答案。故发帖求助!

问题描述:
1 在b.h文件里定义了一个结构体 a,然后又定义了a的全局结构体变量 a1。
2 在b.c文件(包含了b.h头文件)里给给全局结构体变量a1的成员变量赋初值。
3 在d.c 和 main.c(都包含了b.h头文件)里都可以正常引用或赋值 a1 的成员变量。
4 我建了一个e.c(包含了b.h 和 e.h头文件)文件,同时我在e.h里也定义了一个结构体 b,定义了结构体 b 的全局结构体变量b1
  我在e.c文件里写的void a()函数引用 a1 的成员变量就会报错。错误好像是找不到 a1。
  同时 void a() 函数引用e.h头文件里的结构体变量 b1 的成员变量是没有问题的。

然后我把void a()函数写在main.c里。
1 再引用 a1 的成员变量不会报错。
2 但是我引用e.h里定义的结构体变量 b1 的成员变量就会报错。
3 这时main.c文件里包含的头文件顺序是这样的b.h在前,e.h在后:       #include "b.h"                                                                                               #include "e.h"

4 我把这两个头文件的位置顺序掉换一下:        #include "e.h"
                                                                #include "b.h"
5 之后main.c里a1的成员变量开始报错了。b1的成员变量正常了。关于这个问题一直找不到头绪。
求解答,不胜感激!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。