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

VIPC语言头文件完全解析(连“#”我都给你讲明白)
C语言头文件完全解析引言本文将尽量详细的介绍c语言的头文件所包含的知识,如有错误,还望指正。萌新们肯定疑惑为什么每次打代码都要写一个所谓的头文件(如:#include<stdio.h>),这里先简单让大家有个了解,你所用的 printf("%d",a)就是这个 stdio里的东西,如果没有这个头文件,编译器都不知道 printf是个什么东东。所以头文件就是一个准备好的大仓库,你可...
开通可读全文 ·7.4w 人阅读
最低0.47元/天 解锁文章

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>
  • 同一个头文件可以被多次引入,多次引入的效果和一次引入的效果相同.
#include<stdio.h> 
#include<stdio.h>
VIP 【C语言初阶】文件结构(头文件结构,头文件作用,头文件被重复包含的问题) 头文件的作用;头文件的命名;头文件的结构;extern声明;头文件被重复包含的问题;定义文件(源文件);源文件的结构;源文件的双重保护;static为源文件提供安全保证;如何将源文件编译成静态库文件?(环境VS2013) 开通可读全文·1.4w 阅读·27 点赞·123 收藏 阅读全文

相关推荐

C标准库--<stdlib.h>库函数应用解析

C标准库--库函数应用示例

yuyuyuliang00的博客 3457

C语言系列 #001_C语言基础知识汇总

Linux C基础 1、经典入门:hello world 1.1、概念: 源文件:源文件即源代码文件,C语言源文件后缀名是.c 头文件头文件后缀名为.h(head,头),C语言代码由源文件和头文件组成。 关键字:关键字是c语言征用了的一些字,这些字在C语言中代表特殊含义,已经被C语言定义好了,轮不到我们用了。每个关键字都有自己特定的含义,我们必须搞懂每个关键字的所有含义和用法,否则就看不懂C语...

Kenneth_J9532的博客 2347

C语言所有标准头文件汇总及功能说明

所有头文件汇总及功能说明。

超哥量化的博客 1万+

C语言头文件详解

include的作用 简单一句话:在include的地方,把头文件里的内容原封不动的复制到引用该头文件的地方。 头文件的引用 头文件引用有两种形式:#include < stdio.h> 和 include "main.h “。 用< >引用的一般是编译器提供的头文件,编译时会在指定的目录中去查找头文件。具体是哪个目录,编译器知道,我们不用关心。用” “引用的一般是自己写的.........

weixin_42031299的博客 10万+

#include<stdlib.h>

是C语言中的一个头文件,stdlib 头文件里包含了C语言的一些函数,该文件包含了的C语言标准库函数的定义。 1、意思是标准输入输出头文件。 2、用到标准输入输出函数时,就要调用这个头文件。 3、stdlib.h中,包含了C语言的一些常用且方便的库函数。 4、如动态内存相关的malloc,realloc,zalloc,calloc,free等。 ...

qq_61537872的博客 1万+

C语言头文件和源文件差异,#include两种引用方式差异

一些初学c语言的人,不知道(*.h文件)原来还可以自己写的。只知道调用系统库函数时,要使用#include语句将某些头文件包含进去。其实,头文件.c文件一样,是可以自己写的。头文件是一种文本文件,使用文本编辑器将代码编写好之后,以扩展名.h保存就行了。头文件中一般放一些重复使用的代码,例如函数声明,变量声明,常数定义,宏的定义等等。。为了避免因为重复引用而导致的编译错误,头文件常具有://代码部分#endif的格式。其中,delay为一个唯一的标号,命名规则跟变量的命名规则一样。

学海无涯的专栏 4958

c语言 # 操作符的三种用法

通过如下示例,一看即可明白

dmf_fff的博客 1443

C语言中,头文件和源文件的关系

首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格式信息。(生成.exe文...

u014183377的专栏 1499

初识C语言——C语言常见概念

函数头书写头文件函数体主函数语句return 0;C语言程序是由一个或多个函数组成,其中必须包含main(主函数)如你所见,一个基本的C语言程序,包含函数头与函数体,其中:1-1 函数头与头文件函数头:一般书写头文件头文件:所谓头文件,顾名思义,就是放在前头的文件,在正式程序开始运行之前就要执行的内容。为什么头文件在程序运行之前就要处理呢?这是因为,c语言的编译者们,编译了许多预先写好的程序,并将它们集合在c库之中,让C语言的使用者更方便地进行程序的编写。下面,我举一个。

2401_88688442的博客 2032

【C语言】printf你真的用明白了吗?

C语言printf终极详解

weixin_59511824的博客 2万+

c语言 头文件卫士详解,C 头文件详解

头文件从字面上可以知道就是头部的文件呗,其实在C语言头文件是扩展名为.h的文件,头文件包含了C语言中的函数声明和宏定义,这个头文件是被很多源文件引用共享的。对于头文件来说,有2中类型的头文件,一种是程序员编写的头文件,另外一种是编译器自带的头文件,对于这两个头文件来说一起来看看吧。在程序中使用的头文件一般是要使用c预处理指令#include 来引用的。而编译器自带的头文件就是stdio.h 。头...

weixin_39862697的博客 375

C语言编译与链接

通过符号将多个模块组合成一个独立程序的过程即。

m0_75104457的博客 1938

C语言编译的五大过程详解

前言 说实话,很多人做了很久的C/C++,也用了很多IDE,但是对于可执行程序的底层生成一片茫然,这无疑是一种悲哀,可以想象到大公司面试正好被问到这样的问题,有多悲催不言而喻,这里正由于换工作的缘故,所以打算系统的把之前用到的C/C++补一补。 总述 从一个源文件(.c)到可执行程序到底经历了哪几步,我想大多数的人都知道,到时到底每一步都做了什么,我估计也没多少人能够说得清清楚楚,明明白白。 ...

s226916240的博客 7462

C/C++ 语言.h文件和.c文件详细解析 引用 .c和.h文件的区别

预处理是编译器的前驱,作用是把存储在不同文件里的程序模块集成为一个完整的源程序. #include本身只是一个简单的文件包含预处理命令,即为把include的后面文件放到这条命令这里,除此之外,没有其它的用处(至少我也样认为). 我对乾坤一笑兄的观点,十分赞同,基础的东东一定要弄明白. 我下面就乾坤一笑兄的例子做,完备他的一些让人迷惑不解的时候~ 例子: //a.h vo

高调做事,低调做人 2万+

C语言预处理详解

基本语法// 名字 内容100register//为register这个关键字创建一个简短的名字for;;//用更形象的符号来替换一种实现break;case//写case语句的时候自动把break加上//如果定义的stuff过长,可以分成几行写,除了最后一行外,每行的后面都加上一个反斜杠(\续行符)printf。

2402_84532723的博客 818

数据结构----头文件实现顺序表的创建、(c语言)小结

  这两天终于抑制不住想要敲代码的心了,于是乎在9号下午,教练说我不让我去练车时,我就开心地回家学《数据结构》(清华严敏蔚老师的书)了,但感觉自己学顺序表时顺带学的有点乱,故决定写此小文总结下近两日的收获。   感觉这次学习顺序表将之复杂化的主要原因在于图1.顺序表基本操作和图2.例题2-1                 图1.《数据结构(c语言版)》中写的顺序表的基本操作 ...

weixin_30617561的博客 2585

c语言自定义头文件_c语言编译过程

这篇思考下C语言的编译过程,通过编译过程再看其它,也许会有不一样的理解。参与过程的结果,才会对结果有不一样的感觉。只追求结果,也许会得出“理所当然”的错觉,自己深陷其中,还浑然不觉。太多所谓的“客观”,到头来还只是个主观的理解,如此而已!学习c语言的第一节课,往往第一个接触的代码便是如图1所示的代码:#include int main(){ printf("hello world!...

weixin_39677538的博客 1221

【C语言】预处理器

ANSI C定义了许多宏。在编程中您可以使用这些宏,但是不能直接修改这些预定义的宏。宏描述_DATE_当前日期,一个以“MMM DD YYYY”格式表示的字符常量_TIME_当前时间,一个以“HH:MM:SS"格式表示的字符常量_FILE_这会包含当前文件名,一个字符串常量_LINE_这会包含当前行号,一个十进制常量_STDC_当前编译器以ANSI标准编译时,则定义为1int main()return 0;参数化的宏CPP一个强大的功能是可以使用参数化的宏来模拟函数。return x*x。

2301_79279099的博客 1674

一下 :引入头文件的两种

the difference between #include&amp;quot;xx.h&amp;quot; and #include&amp;amp;lt;xx.h&amp;amp;gt; #include&amp;quot; .h&amp;quot;是用来引入非标准库的头文件的,编译器从用户的工作目录开始搜索 这个过程是这样的:其中“ ” 表示编译器先从程序源文件所在的目录中查找,如果没有找到的话,再去系统默认的目录去找,通常是用来包含程序编写者提供

weixin_42778444的博客 2149
??Y(^_^)Y??
博客等级 码龄7年 36粉丝 1原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值