C语言中#include 双引号“ ”与尖括号< >的区别

1、预处理器与预处理指令

1.1 、预处理器

预处理器是一个小软件,它可以在编译前处理C程序,预处理器的主要作用包括宏定义,条件编译,文件包含等。
预处理器的输入是一个C程序,程序包含预处理指令,预处理器会执行这些指令,并在处理过程中删除这些指令。
预处理器的输出是另一个C程序,它是原程序编辑后的版本,不再包含指令。之后被直接交给编译器,编译器检查程序是否有错误,并将程序翻译为目标代码(机器指令)。

C程序
预处理器
修改后的C程序
编译器
目标代码

预处理器的行为由预处理指令控制,预处理指令是由#字符开头的一些命令
#include指令,文件包含,它告诉预处理器打开一个特定的文件,将它的内容作为正在编译的文件的一部分包含进来。
例如:

#include <stdio.h>  //预处理器打开stdio.h文件,并将它的内容加到当前的程序中。

1.2、预处理指令

预处理指令以#符号开头,主要有以下三种:
1、宏定义:#define指令定义一个宏,#undef指令删除一个宏定义。
2、文件包含:#include指令,将一个指定文件的内容包含到程序中。
3、文件编译:#if,#ifdef,#ifndef,#elif,#else,#endif。

2、#include指令

#include指令主要有2种写法:
1、#include <文件名>,用于C语言库的头文件。
2、#include “文件名”,用于所有的文件,包括C语言库的头文件、自己编写的头文件。
这两种写法的主要区别在于编译器定位头文件的方式,大多数编译器遵循的规则为:
#include <文件名>:搜寻系统头文件所在的目录。
#include “文件名”:先搜寻当前目录,如果搜寻不到头文件,再去搜寻系统头文件所在目录。

3、#include 记号(上面2中写法的变种)
记号是任意预处理记号序列。预处理器会扫描这些记号,并替换遇到的宏。
例如:

#define STM32F103 “stm32f103.h”
#include STM32F103

3、总结

1、#include <文件名>,主要用于包含系统头文件。
2、#include “文件名”,可用于所有文件,既可用于系统头文件,也可应用于自己编写的头文件。
3、如果#include <自己编写得文件>,预处理器可能无法找到包含文件。
4、所以直接用 #include “文件名” 一定不会出错

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值