Keil工程在h文件中定义变量
1. 背景
关于变量的定义,严谨的做法当然是在c文件中定义,h文件中声明。但总有人喜欢在h文件中定义全局变量,可能是喜欢集中管理全局变量,也可能是觉得一个变量要维护c和h两个地方太麻烦,总之有人有这个需求。
2. 思路
如果直接在h文件中定义就会在编译时报如下错误,也就是重复定义,这是因为有多个c文件包含了定义变量的h文件导致的:
ERROR L104: MULTIPLE PUBLIC DEFINTIONS
思路很简单,利用预编译指令,让第一次包含是定义,之后的包含是声明。重复声明是合法的,当然就不会报错了。
3. 方法
在定义变量的h文件中:
//--通过宏定义,实现在h文件中定义且声明变量--
#ifndef EXTERN
#