C语言头文件是什么

C语言头文件是什么,第1张

#include 的本质就是把对应的文件直接拷贝到这一行里面

要理解头文件,主要是要理解“声明”

C/C++中,所有使用到得变量、函数、类都要是声明过得,就是说,要有一行语句来告诉编译器,我有一个名字叫XXX的类型的变量(函数、类)。

然后还有一个因素就是,在编译的时候,程序是按照每个C或CPP文件单独编译的。

也就是说,对于每个C文件中,如果都用到了同一个函数(比如printf),那么,我在每个对应文件中写一遍printf的声明明显是很麻烦的。所以我把这个声明单独写了一个文件,为了区别,我把扩展名记做h,在需要使用对应的函数(类)的时候,我就不需要去拷贝函数的声明,而只需要#include对应头文件就可以了,系统自动帮你拷贝进来——C语言提供的头文件,按照函数功能分类好了,比如数学函数就都写在了mathh里面,一包含就全包含,不管你用没用到cos()这个函数或者其他什么。

当然,由于h文件中也可以包含其他h文件,所以为了不重复声明或定义,需要用宏做相应的处理,这个不是要理解的东西,而是照着写。

看到你的补充,在这里我也补充下答案

对于自己定义的函数,首先,肯定的是,你至少需要在一个C文件中定义它,否则链接会出错。当你想在任何一个文件中使用的时候,你只需要让这个文件包函数声明所在的头文件即可。

具体来说:

ah中声明了了

int a( int x);

ac中实现这个函数,需要有类似代码

#include "ah"

//其他代码

int a(int x)

{

return xx;

}

如果在bc中想使用这个,则只要在bc中这样就可以:

#include "ah"

//其他代码

x = a(x);

//其他代码

c语言中的头文件:#include<stdioh>。

头文件的作用:

1头文件可以定义所用的函数列表,方便查阅你可以调用的函数。

2头文件可以定义很多宏定义,就是一些全局静态变量的定义,在这样的情况下,只要修改头文件的内容,程序就可以做相应的修改,不用亲自跑到繁琐的代码内去搜索。

3头文件只是声明,不占内存空间,要知道其执行过程,要看你头文件所申明的函数是在哪个c文件里定义的,才知道。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

头文件说白了就是函数库,里面定义了c提供的函数。

你可能会好奇,为什么你可以直接在main函数里面调用printf()和scanf()这两个函数而不用事先声明和定义。这就是因为你在写程序的时候在最开头的地方声明这个程序包含了<stdioh>这个头文件,而printf()和scanf()这两个函数就是在<stdioh>这个头文件里面定义了的关系。

自定义头文件通常放在使用该头文件的源文件所在的目录中,并使用#include "MyHeadh"来包含。

头文件是不编译的,因为C语言编译过程之前有个预编译过程。在这个过程中用头文件中的内容替换源文件中“#include”命令,所以在编译器看来,没有头文件,只有源文件。预编译过程还包括条件编译。

头文件为了防止被重复包含,通常的格式是:

/ MyHeadh /

#ifndef _MYHEAD_H_

#define _MYHEAD_H_

(这里是头文件的内容)

#endif / _MYHEAD_H_ /

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

C系统提供了丰富的系统文件,称为库文件,C的库文件分为两类,一类是扩展名为"h"的文件,称为头文件,在前面的包含命令中我们已多次使用过。在"h"文件中包含了常量定义、 类型定义、宏定义、函数原型以及各种编译选择设置等信息。另一类是函数库,包括了各种函数的目标代码,供用户在程序中调用。 通常在程序中调用一个库函数时,要在调用之前包含该函数原型所在的"h" 文件。

下面给出Turbo C的全部"h"文件。

Turbo C头文件

 ALLOCH 说明内存管理函数(分配、释放等)。

 ASSERTH 定义 assert调试宏。

 BIOSH 说明调用IBM—PC ROM BIOS子程序的各个函数。

 CONIOH 说明调用DOS控制台I/O子程序的各个函数。

 CTYPEH 包含有关字符分类及转换的名类信息(如 isalpha和toascii等)。

 DIRH 包含有关目录和路径的结构、宏定义和函数。

 DOSH 定义和说明MSDOS和8086调用的一些常量和函数。

 ERRONH 定义错误代码的助记符。

 FCNTLH 定义在与open库子程序连接时的符号常量。

 FLOATH 包含有关浮点运算的一些参数和函数。

 GRAPHICSH 说明有关图形功能的各个函数,图形错误代码的常量定义,正对不同驱动程序的各种颜色值,及函数用到的一些特殊结构。

 IOH 包含低级I/O子程序的结构和说明。

 LIMITH 包含各环境参数、编译时间限制、数的范围等信息。

 MATHH 说明数学运算函数,还定了 HUGE VAL 宏, 说明了matherr和matherr子程序用到的特殊结构。

 MEMH 说明一些内存操作函数(其中大多数也在STRINGH中说明)。

 PROCESSH 说明进程管理的各个函数,spawn…和EXEC …函数的结构说明。

 SETJMPH 定义longjmp和setjmp函数用到的jmp buf类型,说明这两个函数。

 SHAREH 定义文件共享函数的参数。

 SIGNALH 定义SIG[ZZ(Z] [ZZ)]IGN和SIG[ZZ(Z] [ZZ)]DFL常量,说明rajse和signal两个函数。

 STDARGH 定义读函数参数表的宏。(如vprintf,vscarf函数)。

 STDDEFH 定义一些公共数据类型和宏。

 STDIOH 定义Kernighan和Ritchie在Unix System V 中定义的标准和扩展的类型和宏。还定义标准I/O 预定义流:stdin,stdout和stderr,说明 I/O流子程序。

 STDLIBH 说明一些常用的子程序:转换子程序、搜索/ 排序子程序等。

 STRINGH 说明一些串操作和内存操作函数。

 SYS\STATH 定义在打开和创建文件时用到的一些符号常量。

 SYS\TYPESH 说明ftime函数和timeb结构。

 SYS\TIMEH 定义时间的类型time[ZZ(Z] [ZZ)]t。

 TIMEH 定义时间转换子程序asctime、localtime和gmtime的结构,ctime、 difftime、 gmtime、 localtime和stime用到的类型,并提供这些函数的原型。

 VALUEH 定义一些重要常量,包括依赖于机器硬件的和为与Unix System V相兼容而说明的一些常量,包括浮点和双精度值的范围。

以上就是关于C语言头文件是什么全部的内容,包括:C语言头文件是什么、c语言中的头文件、什么 是C语言头文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:聚客百科

原文地址: https://juke.outofmemory.cn/life/3818629.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存