#include使用引号“”和尖括号<>的区别?

头文件被包含的方式

(1)本地文件包含

#include "test.h"

用户自定义的文件用双引号括起来,编译器首先在当前文件所在的目录搜索是否有符合的文件,如果没有再到C++安装目录的include文件夹里去找对应的文件(Vscode中现在可以指定和修改库文件查找路径,Unix和Linux中可以通过环境变量来设定中查找),最后在系统文件中查找,如果依然找不到就提示编译错误。

(2)库文件包含
比如:

#include <stdio.h>

我们一般用尖括号包含标准库的头文件,查找头文件时,编译直接去标准路径(如C++安装目录的include文件夹,keil的INC文件夹)下去查找,如果找不到就提示编译错误。

  有的人可能会想,既然本地文件包含库文件包含,最终都会去标准路径中查找文件,那我无论什么头文件,全部使用双引号的形式进行引用不就行了?这种方法是正确的,但如果头文件位于标准路径下,那使用双引号查找的效率就低些。所以对于库文件,首选尖括号形式引用头文件。

  最后再说一句,头文件中不能定义全局变量,否则如果有多个文件包含了这个头文件,那程序在链接时会发生冲突。

posted @ 2024-02-11 17:53  iZJ"Qq4577105  阅读(35)  评论(0编辑  收藏  举报