C语言#include使用“尖括号”与“双引号”的区别

前言:我们又是在写C++的时候,会看见这样的写法 # include <stdio.h>或者是# include "stdio.h",它们有什么区别呢?其实很简单,本文做一个简单的说明。

一、不同的搜索路径

对于使用双引号还是尖括号,它们的主要区别是:
编译器预处理阶段查找头文件的路径不一样。

1、对于使用双引号的头文件

查找头文件路径的顺序为:

  • (1)先在当前源文件所在的工作目录中进行查号
  • (2)编译器设置的头文件查找路径,编译器有默认的头文件查找路径(当然编译器可使用-I显式指定搜索路径)
  • (3)系统变量CPLUS_INCLUDE_PATH/C_INCLUDE_PATH指定的头文件路径

2、 对于使用尖括号包含的头文件,

查找头文件的路径顺序为:

  • (1)编译器设置的头文件查找路径,编译器有默认的头文件查找路径(当然编译器可使用-I显式指定搜索路径)
  • (2)系统变量CPLUS_INCLUDE_PATH/C_INCLUDE_PATH指定的头文件路径

由此可见,他们的区别主要是在头文件的搜索顺序上面,淡然还有一点其它的,如下所述。

3、其他区别

#include<>格式:我们常常引用标准库头文件,编译器从标准库目录开始搜索

#include“”格式:我们常常引用非标准库的头文件,即我们自己写的头文件,编译器从用户的工作目录开始搜索

为什么?

其实对于标准库的头文件,两种使用方式都没有太大的区别,因为只要和自定义的头文件名称不冲突,它总会在搜索路径中找到的,但是对于自定义的头文件,我们就没有办法使用尖括号了,因为尖括号不会搜索当前工作路径。所以

对于非名称冲突的标准库头文件,两种使用方法均可以,对于自定义的头文件,使用双引号。当然了,对于自定义的头文件,我也可以使用尖括号,我可以在编译的时候给编译器指定搜索路径,这样也可以实现。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值