关于#include

一、关于 #include

首先,#include 为预处理语句,那什么是预处理语句呢?

预处理语句最明显的标志是一些以#开始的特殊语句。

例如:#include、#define、#if 等就是预处理语句。在程序的其它编译处理(代码生成等)之前,先进行这些语句的处理。

在编译工具中,有一个叫预处理器的东西,预处理器发现 #include 指令后,就会进行一些预处理操作。

二、#include 定义

2.1 #include <xxx.h>

系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找。

2.2 #include "xxx.h"

用户自定义的头文件用双引号括起来,编译器首先会在用户目录下查找,然后再到 C++ 的安装目录(Linux 中可以通过环境变量来设定)中查找,最后在系统文件中查找。


这两种写法都是正确的写法,但它们却是有区别的。我们知道 C/C++ 已经有一些编写好的头文件(比如标准函数库等)。当我们使用 #include <XXX> 命令时,编译器就到系统文件夹里去找对应的头文件。

显然,用这种写法去寻找一个我们自己编写的头文件就会出错,因为我们自己写的头文件一般情况下并不在系统文件夹里。所以包含 C++ 提供的头文件时,应该使用尖括号。

相反地,#include "XXX.h" 命令则是先在当前文件所在的目录搜索是否有符合的文件,如果没有再到系统文件夹里去找对应的头文件。因此,无论这个文件是 C++ 提供的还是自己编写的,使用 #include "XXX.h" 命令一定是正确的。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值