C语言头文件完全解析(连“#”我都给你讲明白)

C语言头文件完全解析

引言

本文将尽量详细的介绍c语言的头文件所包含的知识,如有错误,还望指正。

萌新们肯定疑惑为什么每次打代码都要写一个所谓的头文件(如:#include<stdio.h>),这里先简单让大家有个了解,你所用的 printf("%d",a)就是这个 stdio里的东西,如果没有这个头文件,编译器都不知道 printf是个什么东东。所以头文件就是一个准备好的大仓库,你可以取用你需要的来增加代码效率。当然如果你不用库函数自然可以不用加头文件说白了库函数也是人编出来的普通头文件,用不到可以不引用。如果你够厉害,你也可以不用头文件,写出和printf一样的程序。

“维基百科”中的介绍的“头文件”

在程序设计中,特别是在C语言和C++中,头文件或包含文件是一个文件,通常是源代码的形式,由编译器在处理另一个源文件的时候自动包含进来。一般来说,程序员通过编译器指令将头文件包含进其他源文件的开始(或头部)。

一个头文件一般包含类、子程序、变量和其他标识符的前置声明。需要在一个以上源文件中被声明的标识符可以被放在一个头文件中,并在需要的地方包含这个头文件。

在C语言和C++中,标准库函数习惯上在头文件中声明,参见C标准函数库和C++标准函数库

#include

#include叫做文件包含命令,用来引入对应的头文件(.h文件)。#include 也是C语言预处理命令的一种。

#include语句的两种语法

#include 的处理过程很简单,就是将头文件的内容插入到该命令所在的位置,从而把头文件和当前源文件连接成一个源文件,这与复制粘贴的效果相同。

我们常看见的头文件是这样的:

#include<stdio.h>

#include语句有两种方式包含头文件,分别是使用双引号" "与左右尖括号< >。其区别是(对于不是使用完全文件路径名的)头文件的搜索顺序不同:

使用双引号" "的头文件的搜索顺序:

1.包含该#include语句的源文件所在目录;
2.包含该#include语句的已经打开的头文件的逆序(因为头文件可以#include另一个头文件构成一个序列);
3.编译选项-I所指定的目录
4.环境变量INCLUDE所定义的目录

就是:编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。

使用左右尖括号< >的头文件的搜索顺序:

1.编译选项-I所指定的目录
2.环境变量INCLUDE所定义的目录

就是:编译器会到系统路径下查找头文件

也就是说,使用双引号比使用尖括号多了一个查找路径,它的功能更为强大。

#include "stdio.h"
#include "stdlib.h"

stdio.h 和 stdlib.h 都是标准头文件,它们存放于系统路径下,所以使用尖括号和双引号都能够成功引入。

而我们自己编写的头文件,一般存放于当前项目的路径下,所以不能使用尖括号,只能使用双引号。

当然,你也可以把当前项目所在的目录添加到系统路径,这样就可以使用尖括号了,但是一般没人这么做,纯粹多此一举。

编程中,既可以使用尖括号来引入标准头文件,也可以使用双引号来引入标准头文件;不过,建议使用尖括号来引入标准头文件,使用双引号来引入自定义头文件(自己编写的头文件),这样一眼就能看出头文件的区别。

#include 用法的注意事项

  • 一个 #include 命令只能包含一个头文件,多个头文件需要多个 #include 命令。
#include<stdio.h>
#include<math.h>
  • 同一个头文件可以被多次引入,多次引入的效果和一次引入的效果相同.
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值