当使用预编译头文件时,当我包含一个已经包含在预编译头文件和常规头文件中的头文件时,它会有所作为(或产生不良影响)吗?
或者换句话说:当我在另一个头文件中包含头x并同时在我的预编译头文件中包含x时,这是否会阻止由预编译头提供的优化启动?
(一般来说)。将会发生的事情是,在编译过程中,如果您使用的是预编译头,并且编译器发现了预编译形式中已经存在的头,它将选择使用预编译形式。
实际上,优良作法是继续使用包含,好像您一开始从未使用过预编译的标头一样。如果将来您关闭预编译的标头或修改其中的标头列表,或者其他人决定执行自己的不使用PCH的源代码外构建,这将有帮助。