如果在一个keil项目文件中有很多组件模块,如 :a.c b.c c.c 等多个c文件,都要用到公用的全局变量,按照通常的做法会定义一个头文件比如global.h 文件,在该头文件中定义一个全局变量var,正确的定义顺序应该是:
global.h 中声明定义 extern int var ;
a.c ,b.c,c.c 选取任意一个.c文件中定义int var。
注意,a.c b.c c.c 中都要包含头文件global.h。
否则会出现 有重复定义的 的错误。
可能不会报错,但是可以从data编译出显示的大小,判断是否有重复定义,这样导致的后果是本来共享的数据没有到达共享的目的 ,再者浪费单片机宝贵的片上资源。
这里定义一个大数组时data 大小会有明显变化。
参考文档:http://www.keil.com/forum/17712/