我们常说,引入编译器自带的头文件(包括标准头文件)用尖括号,引入程序自定义的头文件用双引号,例如:
1. #include
2. #include "myFile.h" //引入自定义的头文件
使用尖括号< >,编译器会到系统路径下查找头文件;而使用双引号" ",编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。也就是说,使用双引号比使用尖括号多了一个查找路径,它的功能更为强大,我们完全可以使用双引号来包含标准头文件,例如:
1. #include "stdio.h"
2. #include "stdlib.h"
那么,这里所说的“系统路径”和“当前路径”是什么意思呢?
绝对路径和相对路径
理论上讲,我们可以将头文件放在磁盘上的任意位置,只要带路径包含进来就可以。以 Windows 为例,在 D盘下创建一个自定义的文件夹,名字为 abc,它里面有一个头文件叫做 xyz.h,那么在程序开头使用#include"D:\\abc\xyz.h"就能够引入该头文件。
现在不妨假设 xyz.h 中有一个宏定义和一个变量:
1. #define NAME "小白"
2. int age = 5;
我们不鼓励在头文件中定义变量,否则多次引入后会出现重复定义错误,这里仅是一个演示案例,并不规范。下面的代码会输出头文件中的宏和变量:
1. #include
2. #include "D:\\\\abc\\xyz.h"
3. int main(){
4. printf("%s 已经 %d 岁了!\\n", NAME, age);
5. return 0;
6. }
运行结果:
小白已经 5 岁了!
绝对路径
<