谢谢楼上,但可能不是这么简单,我在项目里添加一个h文件: MMM.h,定义一个结构体:
struct
{
unsigned SET :1;
unsigned TIM3_OV :1;
unsigned U2RV ...
飞絮飘飘 发表于 2012-6-25 12:40
哦,你要定义结构变量啊,最好不要在头文件中定义。
标准的方法:
在头文件中定义结构类型,在“某个”C文件中定义这个结构类型的“全局”变量,其它C文件声明这个结构类型的“外部”变量。
例如:
// 头文件----------
#ifndef __MMM_H
#define __MMM_H
typedef struct {
...
} work_t; // 定义了 work_t 结构类型
#endif // __MMM_H
// C文件----------
#include "mmm.h"
work_t work; // 定义 work_t 类型的全局变量 work。
......
// 其它C文件---------
#include "mmm.h"
extern work_t work; // 声明 work_t 类型的外部变量 work。
......
或者如果你的 work 变量使用非常广泛,几乎在每个C文件中都会访问到,那么就可以在定义 work_t 结构类型的头文件中,直接声明其外部变量:
// 头文件----------
#ifndef __MMM_H
#define __MMM_H
typedef struct {
...
} work_t; // 定义了 work_t 结构类型
extern work_t work; // 声明 work_t 类型的外部变量 work。
#endif // __MMM_H
那么在其它C文件中就不必挨个声明外部变量了。 |