我供职的公司有C开发嵌入式目标的开发规则。一是:建议不要在头文件中分配任何存储空间。我不知道这是什么意思,写这篇文章的人不在身边,其他开发人员也不在乎,所以我在这里问。我的理解是,我不应该在头文件中声明变量,因此在a.h中不鼓励这样做: int myVar; static char myOtherVar; 我不明白的是这有什么问题?我为什么不做呢? 最佳答案 错误的是,外部变量被双重定义,而static为包含头的每个模块定义一个变量,这会浪费空间(除非它们得到优化)。