关于c/c++文件多文件编译的问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 02:52:16
// c3-2.h 单链队列--队列的链式存储结构
// 设队列元素为二叉树的指针类型
typedef struct QNode
{
QElemType data;
QNode *next;
}*QueuePtr;

struct LinkQueue
{
QueuePtr front,rear;
};
Status InitQueue(LinkQueue &Q);
Status DestroyQueue(LinkQueue &Q);
...
...

----------------
//c6.h其它头文件都依赖的文件
typedef struct node{
TElemType data;
struct node *lchild,*rchild;
}BiTNode,*BiTree;

typedef BiTNode QElemType;

//b06-2.cpp文件它是c06-2.h的实现文件
LinkQueue q; //(1)这个地方出错????

而中main6-2文件中引用的序列如下:
#include "c6.h"
#include "c3-2.h"
#include "c6-2.h"

请问为什么在(1)地方出错??

方法1.
把LinkQueue q;这样的变量声明语句中的LinkQueue改为 struct LinkQueue

方法2.


struct LinkQueue
{
QueuePtr front,rear;
};

改为

typedef struct
{
QueuePtr front,rear;
} LinkQueue;

struct LinkQueue q;

(1)处改为struct LinkQueue q; 就可以了

奇怪了,我用你的给定例子编写了一个,发现没有问题诶。真是奇怪。你是用什么开发环境啊?