菜鸟有个疑问 还请各位大神看看问题是这样的
我在key.h中定义了一个结构体变量
typedef struct
{
u8 key_cnt;
u8 key_flag;
}key_t;
然后在 main.c key.c test.c中包含这个文件 在不同的c文件里创建不同的变量
编译器报警,提示多重定义.
于是在key.h中加入条件编译
#ifdef key
#define key
typedef struct
{
u8 key_cnt;
u8 key_flag;
}key_t;
#endif
这样就解决问题了
我的问题是 main key c等文件包含了key.h文件后,按照编译原理首先要把key.h中的文件
打开后放置在各个c文件里,这样不就是各个c文件里多有
#ifdef key
#define key
typedef struct
{
u8 key_cnt;
u8 key_flag;
}key_t;
#endif
这个内容 那不是又多重定义了吗 怎么会又解决了呢
那么 条件编译到底是什么作用呢
|