【发布时间】:2017-05-20 12:27:42
【问题描述】:
我有 3 个源文件:matrix.c、tetramino.c 和 learntris.c(包括标题 tetramino.h 和 matrix.h,将其与各自的文件链接)。我有一个结构:所有这些文件都需要struct tetramino。在阅读了这个问题及其答案-How to use a defined struct from another source file? 后,我创建了一个头文件structure.h,现在我的文件如下所示:
在结构.h中:
typedef struct tetramino
{
int type;
char *p;
}tetramino;
在matrix.h中:
#include"structure.h"
int print_matrix(void);
int clear_matrix(void);
在 tetramino.h 中:
#include"structure.h"
int rotate(void);
int set_tetramino(void);
最后,在主 learntris.c 文件中包含:
#include"structure.h"
#include"matrix.h"
#include"tetramino.h"
现在,在编译它们时,我得到了这些错误:
错误:重新定义 'struct tetramino'
和
错误:'tetramino' 的类型冲突
问题出在哪里?
【问题讨论】:
标签: c struct compilation header-files