《C++ primer》学习笔记之一:#include如何寻找头文件

include: 如何寻找include指令指定的file(inc file)头文件

实际的目录结构如下:
 ----len     //目录下有文件 be.cpp 和 be.h,  ce.h,及一个子文件夹inc
    |----inc   //目录下有文件common.h


预编译器按下面的步骤依次寻找:
 1.在包含include语句的文件(该文件叫头文件的parentFile)所在的目录找:
  //in be.cpp:
  #include "be.h"  //在len目录下找
  
  //in be.h:
  #include "common.h"   //Error. 在len目录下找,没找到.
  #include "inc/common.h"  //Ok. common.h在sub folder 中.
  
  //in common.h:
  #include "../ce.h"  //Ok. ce.h在super folder中.
  
 2.如果(1)没找到,则在parentFile的parentFile(grantparent file)所在的目录中找。
  由于在inc file中仍然可以使用#include指令,所以一个inc file可以有parent file, grantparent file
  //in be.h:
  #include "inc/common.h"  //Ok. common.h在sub folder中
  //in common.h:
  #include "ce.h"    //Ok.虽然ce.h不在inc目录下(parent file----common.h所在的目录),但在len目录下(grantparent----be.h所在的目录);
  
  第2条是递归的,会依次找parent的parent的...parent目录。
 3.在/I参数指定的目录中找
  //已经指定/I"inc"
  //in be.h:
  #include "common.h"  //Ok.common.h在inc下
  
 查找时按1.2.3的顺序找,文件名区分后缀(common和common.h是两文件)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值