头文件中的内存分配

时间:2014-03-31 12:09:43

标签: c memory-management embedded header-files

我正在为之工作的公司在嵌入式目标上有C开发的开发规则。一个是:

  

建议不要在头文件中分配任何存储空间。

我不确定这意味着什么,编写它的人不在身边而其他开发人员并不在乎,所以我在这里问。

我的理解是我不应该在头文件中声明变量,所以不鼓励这样的.h:

   int myVar;
   static char myOtherVar;

我不明白的是这有什么不对?我为什么不这样做?

2 个答案:

答案 0 :(得分:5)

有问题的是外部变量被双重定义,而static为每个包含标题的模块定义,浪费空间(除非它们被优化掉)。

答案 1 :(得分:0)

您应该在C文件中声明该变量,并使用

extern int myVar;

在头文件中,或者更好的是,写一个访问器函数。

在标题中包含static char myOtherVar;是没有意义的,因为静态意味着它只能在声明它的文件中访问。