- 论坛徽章:
- 0
|
我有两个.h和.c文件,分别是queue.h ,tree.h queue.c tree.c ,具体如下
/*******************************************queue.h***********************/
#ifndef queue_h
#define queue_h
#include"tree.h"
//#define element_type BinaryTree*
#define BUFFER_SIZE 15
typedef struct My_Queue
{
//element_type Qarray[BUFFER_SIZE];
BinaryTree* Qarray[BUFFER_SIZE];
unsigned int front;
unsigned int rear;
}Queue;
void IniQueue(Queue* Q);
void EnQueue(Queue* Q,BinaryTree* e);
void DeQueue(Queue* Q,BinaryTree* e);
#endif
/*******************************************queue.h***********************/
/*******************************************queue.c***********************/
.....
/*******************************************queue.c***********************/
/*******************************************tree.h***********************/
#ifndef tree_h
#define tree_h
#include"Queue.h"
//#define element_type char
typedef struct BinaryTree
{
char data;
BinaryTree*leftchild;
BinaryTree*rightchild;
};
void Visit(BinaryTree*tree);
void PreOrder(BinaryTree*tree);
void InOrder(BinaryTree*tree);
void PostOrder(BinaryTree*tree);
void LevelOrder(BinaryTree*tree,Queue* Q);
void PrintNewLine();
BinaryTree*CreateBinaryTree();
#endif
/*******************************************tree.h***********************/
/*******************************************tree.c***********************/
......
/*******************************************tree.c***********************/
两个。h 文件互相引用了对方,一开始我就只是在每个。h文件中包含对方,但有错: fatal error C1014: 包含文件太多 : 深度 = 1024
后来 我看了下网上的一些解决方法,就在每个。h前加了宏,就像上面代码中,但这时:
1>d:\project\adt\tree.h(33) : error C2061: 语法错误 : 标识符“Queue”
1>tree.cpp
1>d:\project\adt\queue.h(21) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>d:\project\adt\queue.h(21) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\project\adt\queue.h(21) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\project\adt\queue.h(31) : error C2061: 语法错误 : 标识符“BinaryTree”
1>d:\project\adt\queue.h(33) : error C2061: 语法错误 : 标识符“BinaryTree”侧
1>d:\project\adt\tree.cpp(5 : error C2660: “EnQueue”: 函数不接受 2 个参数
1>d:\project\adt\tree.cpp(60) : error C2660: “EnQueue”: 函数不接受 2 个参数
1>d:\project\adt\tree.cpp(61) : error C2660: “DeQueue”: 函数不接受 2 个参数
希望大家指导下
谢谢 |
|