微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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或包含错误标题.

原文地址:https://www.jb51.cc/c/113856.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐