14.c/c++程序员面试宝典-include的使用

14.c/c++程序员面试宝典-include的使用

要使用头文件,必须在源文件中#include该头文件。为了编写头文件,编程者需要进一步理解#include指示是怎样工作的。#include设施c++预处理器的一部分。预处理器处理程序的源代码,在编译器之前运行。


面试题77 include有哪几种使用方式?有什么区别***


分析:#include指示只接受一个参数就是头文件名。预处理器用指定的头文件内容替代每个#include。编程者自己的头文件存储在文件中。系统的头文件可能用特定于编译器的更高效的格式保存。无论头文件以何种格式保存,一般都含有支持分别编译所需的类定义及变量和函数的声明。头文件经常#include其他头文件。头文件定义的实体经常使用其他头文件的设施。例如,定义Sales_item类的头文件必须包含string库,Sales_item类含有一个string类型的数据成员,因此必须可以访问string头文件。


#include的使用方式有#include<>和#include ""两种。

使用方式的区别如下:

如果头文件名括在尖括号(<>)里,那么认为该头文件是标准头文件。编译器将会在预定义的位置集查找该头文件,这些预定义的位置可以通过设置查找路径环境变量或者通过命令行选项来修改。使用的查找方法因编译器的不同而差别迥异。建议咨询同事或者查阅编译器用户指南来获得更多的信息。


如果头文件名括在一对引号里,那么认为它是非系统头文件,也就是自定义的头文件,非系统头文件的查找通常开始于源文件所在的路径。

#include<standard_header>

#include "my_file.h"


【答案】include有两种方式,#include<>和#include "",其中前者是使用标准头文件,后者是使用自定义头文件。



面试题78 包含头文件时如何查找头文件**


分析:系统标准头文件用尖括号括起来,这样编译器会在系统文件目录下查找。

用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找,然后再到c++安装目录(例如vc中可以指定和修改库文件查找路径,Unix和Linux中可以通过环境变量来设定)中查找,最后在系统文件中查找,示例代码如下:


(1)在包含include语句的文件(该文件叫文件的parentFile)所在的目录找:

//in be.cpp:

#include "be.h"  //在len目录下找

//in be.h:

#include"common.h"  //错误,在len目录下找,没找到

#include"inc\common.h"  //common.h在sub folder中

//in common.h:

#include"..\ce.h"  //正确,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"  //common.h在sub folder中

//in common.h:

#include"ce.h"  //虽然ce.h不在inc目录下,但在len目录下


(3)按参数指定的目录中找,代码如下:

//已经指定/I"inc"

//in be.h:

#include "common.h"  //common.h在inc下


【答案】标准头文件在系统文件目录下查找。用户自定义文件会依次在用户目录的c++安装目录和系统文件中查找。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值