我正在为之工作的公司在嵌入式目标上有C开发的开发规则。一个是:
建议不要在头文件中分配任何存储空间。
我不确定这意味着什么,编写它的人不在身边而其他开发人员并不在乎,所以我在这里问。
我的理解是我不应该在头文件中声明变量,所以不鼓励这样的.h:
int myVar;
static char myOtherVar;
我不明白的是这有什么不对?我为什么不这样做?
答案 0 :(得分:5)
有问题的是外部变量被双重定义,而static
为每个包含标题的模块定义,浪费空间(除非它们被优化掉)。
答案 1 :(得分:0)
您应该在C文件中声明该变量,并使用
extern int myVar;
在头文件中,或者更好的是,写一个访问器函数。
在标题中包含static char myOtherVar;
是没有意义的,因为静态意味着它只能在声明它的文件中访问。