gpt4 book ai didi

c++ - 预编译头 - 从所有其他文件中删除所有预编译头所必需的

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:08:07 25 4
gpt4 key购买 nike

我有一个很大的项目,为了编译速度,我开始测试预编译头文件。

我现在已经设置好了一切:

  • 在 VS 中启用预编译 header (将它们用于项目,仅为 StdAfx.h 创建它)
  • 对除 StdAfx.h 之外的所有文件使用多处理器编译
  • 通过 VS 的强制包含自动将 StdAfx.h 包含在我的所有文件中

现在出现的问题如下:

我是否需要删除已添加到 StdAfx.h 文件中的所有项目文件的所有包含项,或者这是不必要的吗?编译器会自动跳过任何包含,因为他知道它是 StdAfx.h 的一部分,还是我应该从每个 .h/.cpp 中删除它们手动归档?

最佳答案

好的做法是让每个文件都包含该文件直接需要的所有头文件。这种方式更改包含在特定文件中应该只影响这个文件。如果您开始依赖其他地方包含的 header ,这将使您的项目结构变得非常脆弱。单个“公共(public)包含”文件是这种情况的极端情况。使用预编译头文件应该可以通过预构建通常包含的头文件来加速编译,但项目文件永远不应该假设其中已经包含了某些东西。所以不需要从“.h/.cpp”中删除包含,实际上有一些工具会根据项目文件中的包含填充预编译头文件。由于 header 保护,编译器将跳过已包含在预编译 header (或其他 header )中的文件。

关于c++ - 预编译头 - 从所有其他文件中删除所有预编译头所必需的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46422362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com