c – 头文件中的预编译头

我第一次遇到了预编译头文件,改变了我的生活.我不能相信编译我的C代码可能是那么快.它现在完全有意义..

无论如何,有一件令我困惑的事情是,从目前为止所读到的,预编译的头文件只能添加到源文件(cpp?)中.

在Visual Studio中,项目属性 – > C/C++ – >高级 – “强制包含文件”之间有一个选项.我将该编译器选项设置为stdafx.h.

在这样做之后,我不再需要包括添加到我的stdafx.h的头,甚至在我的头文件(源文件应该自动包括stdafx.h).这是预期的行为吗?

我找不到标题/源文件区分清楚的地方.

如果它是有益的,但我恐怕这是另一个风险投资者可以让你离开的东西,但会在GCC中崩溃.是的,需要便携;至少在GCC和VC之间.

解决方法

StdAfx.h真的应该只包含在源文件中,而不是标题.我建议您在每个cpp中首先包含“StdAfx.h”,而不使用“强制包含文件”选项.这是我如何使用我的跨平台项目.为了记录,我实际上并没有在GCC中使用预编译的头文件,我只是正常地构建它,它的工作正常.

对于一些背景编译器只查看源文件(即* .cpp,* .c等),因此当编译它时,它必须包含每个标题并编译头文件中找到的任何代码.预编译头选项允许一次编译所有代码(即,StdAfx.h中的全局include’d代码),以便您不必一直执行此操作.这是什么StdAfx.cpp.编译器将StdAfx.cpp与StdAfx.h中包含的所有代码编译一次,而不必每次构建时都执行此操作.

因此,由于在每个源文件中包含StdAfx.作为第一个项目,因此将它们包含在StdAfx.h中,因此将可以访问所有代码在StdAfx.h.此外,您可以在其他项目中使用这些标题,而无需担心StdAfx.h或包含错误标题.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...