c++ - 预编译 header 和正常包含

标签 c++ precompiled-headers

使用预编译 header 时,如果我包含一个 header (我已经包含在预编译 header 中,也包含在常规 header 中),这是否会有所不同(或产生不良影响)?

或者换句话说:当我在另一个头文件中包含头文件 x 并同时在我的预编译头文件中包含 x 时,这是否会阻止预编译头文件提供的优化发挥作用?

最佳答案

没有

(一般来说)。将要发生的是,在编译期间,如果您使用预编译 header ,并且编译器发现预编译形式中已存在的 header ,它将选择使用预编译形式。

事实上,继续使用您的包含是一种很好的做法,就好像您一开始就没有预编译头文件一样。如果您将来关闭预编译 header 或修改其中的 header 列表,或者其他人决定进行他们自己的不使用 PCH 的源外构建,这会有所帮助。

关于c++ - 预编译 header 和正常包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41614024/

相关文章:

c++ - Visual Studio 2010、Intellisense 和 PCH : what are the alternatives to ugly stdafx. h?

c++ - 为什么使用预编译头文件 (C/C++)?

c++ - 所有 Visual Studio 安装程序都会崩溃,并且可视化构建工具也无法工作

c++ - header 与 typedef 之间的循环依赖

c++ - 我的程序如何附加正在运行的程序?就像 gdb 一样。在 Linux 中

c++ - 带有 DLL 解决方案的预编译 header 。无法打开预编译头文件

C++ - 预编译头文件问题

gcc - gcc 上的预编译头没有加速(但 Visual Studio 的加速很大)

c++ - 模板类的运算符<<()

C++14 'auto' 可以获取函数返回类型,还需要std::result_of<>吗?