2012-10-09 47 views
2

假设我有一个exe文件在C中有3个源文件。在所有三个文件中包含stdio这样的头文件以及包含main()功能?在每个模块中包含头文件的好习惯

如果否,那么通常的做法是什么。

我读过一篇文章,其中说头应该包含结构的所有定义,#define等。但我不确定是否包含其他标准头文件。

任何建议表示赞赏!

+0

@SteveJessop肯定。按照建议编辑。 – Shash

回答

4

只包括标题,您需要。没有其他人。


包括额外的标头,这是不必要的,可能/会产生不必要的更大的exe/lib。你不需要那个。

此外,这可能会误导别人 - 不包括代码,你不需要。

它可能会导致名称冲突,例如 - 如果包含具有相同名称的标题,包含函数。你也不需要这个。

C没有namespace s,所以你不需要包含名字,你不会使用。你可能想用它们做其他事情。

如果你需要在几个模块中的头 - 包括它。否则:

  • 如果没有间接包含它,则会出现编译器错误。
  • 如果是间接的包括在内,这可能会导致一些麻烦的开发商,谁将会保持/支持你的代码
+0

所以,你的意思是说,如果我需要在所有3个模块中包含stdio,那么我应该包括所有三个模块。是吗? – Shash

+0

@Shash - 是的,包括他们。看我的编辑。 –