关于结构体的问题

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的成员变量正常了。关于这个问题一直找不到头绪。
求解答,不胜感激!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-20 13:25
 精彩回答 2  元偷偷看……
吃瓜群众
2楼-- · 2019-07-20 17:19
你把报的错放上来啊,还有头文件是不是重复编译出的bug
青春梦飞翔
3楼-- · 2019-07-20 18:14
 精彩回答 2  元偷偷看……

一周热门 更多>