细说 C 语言头文件的路径

细说 C 语言头文件的路径

我们常说,引入编译器自带的头文件(包括标准头文件)用尖括号,引入程序自定义的头文件用双引号,例如:

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 岁了!

绝对路径

<

相关推荐

口琴好学吗?多长时间能学会?
bt365账户为什么封

口琴好学吗?多长时间能学会?

📅 06-30 👁️ 1627
美国ID购买,你究竟在追求什么?
365游戏中心正式版

美国ID购买,你究竟在追求什么?

📅 07-07 👁️ 7789
兴业银行淘宝信用卡申请详解:还款费率规则
365游戏中心正式版

兴业银行淘宝信用卡申请详解:还款费率规则

📅 07-15 👁️ 2747
美团积分如何使用-美团积分怎么抵现金[多图]
365游戏中心正式版

美团积分如何使用-美团积分怎么抵现金[多图]

📅 06-28 👁️ 4339
iphone6s原装苹果耳机
bt365账户为什么封

iphone6s原装苹果耳机

📅 06-29 👁️ 8887
南非世界杯盘点总结
bt365账户为什么封

南非世界杯盘点总结

📅 07-01 👁️ 8146
古代女子洞房的步骤介绍:古代洞房有什么讲究?
bt365账户为什么封

古代女子洞房的步骤介绍:古代洞房有什么讲究?

📅 07-17 👁️ 6705