在C和C++中,`#include`指令用于将其后跟的头文件包含在源代码中。它有两种写法:
#include <头文件名>
#include "头文件名"
它们有以下区别:
一、头文件查找目录不同
#include <头文件名>:编译器直接从系统类库里查找头文件,如果没有找到,再从当前项目路径下查找,如果还是找不到,则会报错。
#include "头文件名":编译器默认从当前项目路径下查找,如果没有找到,再从系统类库里查找,如果还是找不到,则会报错
二、使用场景不同
#include <头文件名>:一般用于包含系统头文件,诸如iostream、stdio.h等。
#include "头文件名":一般用于包含自定义的头文件。
三、作用域不同
#include <头文件名>:导入的(系统)头文件不属于当前工程的一部分,而属于编译器所提供的全局命名空间,其内定义的变量、函数、宏等名称是全局可见的,可以在任何文件中使用。
#include "头文件名":目的是将该头文件作为这个源文件的局部头文件,它的作用域仅限于当前文件内部。
当自定义头文件被包含在多个文件中时,为了避免出现头文件重复定义的问题,可以对头文件内的变量使用extern 关键字进行声明和定义。