有关C++头文件的包含顺序研究

2020-01-06 16:28:42刘景俊

 
2)如果你把pch文件不小心丢了,根据以上的分析,你只要让编译器生成一个pch文件就可以了。也就是说把stdafx.cpp(即指定/Yc的那个cpp文件)重新编译一遍就可以了。   

那么在Linux平台下有没有这种预编译机制呢?如果有,它是怎么实现的呢?Linux平台下GCC编译器也实现了预编译机制的。这里以开源IDE CodeBlocks(CodeBlocks内置了GCC编译器)的工程为例来说明Linux平台的实现:
 
使用CodeBlocks建一个C++工程,然后新建一个my_pch.h,输入如下代码:


<span style="font-size:16px;">/*************************************************************** 
 * Name:   my_pch.h 
 * Purpose:  Header to create Pre-Compiled Header (PCH) 
 * Author:   () 

 * Copyright: () 
 * License: 
 * 使用方法: 项目构建选项-->其他选项-->填入下面两行 
 -Winvalid-pch 
 -include my_pch.h 
 **************************************************************/ 
 
#ifndef MY_PCH_H_INCLUDED 
#define MY_PCH_H_INCLUDED 
 
// put here all your rarely-changing header files 
 
#include <iostream> 
#include <string> 
 
#endif 
</span> 

然后在项目构建选项-->其他选项-->填入下面两行

 -Winvalid-pch
 -include my_pch.h

就可以启用预编译文件头。
然后 main.cpp 就可以不用 include 头文件了,直接这样就可以编译了,


<span style="font-size:16px;">int main() 
{  
using namespace std; 
  cout << "Hello world!" << endl; 
  return 0; 
} 
</span> 

即使在上面的代码写上下面一行,其实是不起作用的:


<span style="font-size:16px;">#include <iostream> </span> 

以上就是小编为大家带来的有关C++头文件的包含顺序研究全部内容了,希望大家多多支持ASPKU~

 
注:相关教程知识阅读请移步到C++教程频道。