头文件是什么

小白 QA 2020-04-25 10:18:59 阅读(...)

头文件是用户应用程序和函数库之间的桥梁和纽带。在整个软件中,头文件不是最重要的部分,但它是 C 语言家族中不可缺少的组成部分。

在 C 语言家族程序中,头文件被大量使用。一般而言,每个 C++/C 程序通常由头文件和定义文件组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。

头文件是什么

概述

一般在一个应用开发体系中,功能的真正逻辑实现是以硬件层为基础,在驱动程序、功能层程序以及用户的应用程序中完成的。

头文件的主要作用在于多个代码文件全局变量(函数)的重用、防止定义的冲突,对各个被调用函数给出一个描述,其本身不需要包含程序的逻辑实现代码,它只起描述性作用,用户程序只需要按照头文件中的接口声明来调用相关函数或变量,链接器会从库中寻找相应的实际定义代码。

头文件是用户应用程序和函数库之间的桥梁和纽带。在整个软件中,头文件不是最重要的部分,但它是 C 语言家族中不可缺少的组成部分。编译时,编译器通过头文件找到对应的函数库,进而把已引用函数的实际内容导出来代替原有函数。进而在硬件层面实现功能。

组成

C++/C 程序的头文件以“.h”为后缀。以下是假设名称为 graphics.h 的头文件:
#ifndef GRAPHICS_H//作用:防止 graphics.h 被重复引用
#define GRAPHICS_H
#include<….>//引用标准库的头文件

#include”…”//引用非标准库的头文件

void Function1(…);//全局函数声明

inline();//inline 函数的定义

classBox//作用:类结构声明
{

};
#endif

从以上例子可以看出,头文件一般由四部分内容组成:

(1)头文件开头处的版权和版本声明;

(2)预处理块;

(3)inline 函数的定义;

(4)函数和类结构声明等。

在头文件中,用 ifndef/define/endif 结构产生预处理块,用 #include 格式来引用库的头文件。头文件的这种结构,是利用 C 语言进行开发软件所通常具备的,属于公有知识。

示例

conio.h 不是 C 标准库中的头文件,是 vc 下的一个头文件。

conio 是 Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如 getch()函数等等。

包含的函数

cgets(char *);

cprintf(const char *, …);

cputs(const char *);

cscanf(const char *, …);

inp(unsigned short);

inpw(unsigned short);

getch(void);

getche(void);

kbhit(void);

outp(unsigned short, int);

outpw(unsigned short, unsigned short);

putch(int);

ungetch(int);

用途

什么样的内容适合放在头文件里?

对于具有外部存储类型的标识符,可以在其他任何一个源程序文件中经声明后引用,此用户完全可以将一些具有外部存储类型的标识符的声明放在一个头文件中。具体地说,头文件中可以包括:用户构造的数据类型(如枚举类型),外部变量,外部函数、常量和内联函数等具有一定通用性或常用的量。而一般性的变量和函数定义不宜放在头文件中。

例如:#include<stdio.h>中的头文件 stdio.h 作用是让链接器通过头文件里的函数声明找到函数实际代码所在的位置即所在的库文件,这样才能使用该函数的实际代码,函数的实际代码的实现过程是先让链接器通过头文件里函数的声明找到函数实际代码所在的位置即所在的库文件,再通过#include 语句把链接器所找到的函数实际代码用链接器把函数的实际代码链接到当前文件即所要执行的程序中。

当然有些函数的使用不需要提供头文件,但是在 ISO/ANSI C 已经对有些函数的使用必须提供哪些头文件制定了标准。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • 红头文件是什么

    红头文件是什么

    “红头文件”并非法律用语。“红头文件”因往往套着象征权威的“红头”而得名,泛指政府机关发布的措施、指示、命令等非立法性文件,长期以来都是各级行政机关实施行政管理活动的重要抓手。
  • 7zip

    7zip怎么解压文件

    7zip解压文件首先打开7zip软件,选择需要解压的文件,右键单击需要解压的文件,如有多个需要解压的文件,可以按住Ctrl键,依次选择所有文件,在右键菜单中选择7-Zip选项,然后选择解压到,选择解压目录,点击确定,等待解压完成即可。
  • 高速扫描仪 High speed scanner

    什么是高速扫描仪

    高速扫描仪是一种通过激光扫描获取信息,然后再将所获取的海量信息传导至打印机等终端设备上,在进行信息的在此处理,使人们便捷地获得信息,一本数十万字的书,利用高速扫描仪读取信息的话,获取这本书的信息只需要短短两三秒钟,其高速的特点可见一斑。
  • 订单管理 order management

    订单管理是什么

    订单管理是客户关系管理的有效延伸,能更好的把个性化、差异化服务有机的融入到客户管理中去,能推动经济效益和客户满意度的提升。订单供货的目的,是品牌能让客户自由选择,货源安排做到公开透明,产品能更加适应和满足消费者的需要。
  • 危机公关是什么

    危机公关是什么

    由于企业的管理不善、同行竞争甚至遭遇恶意破坏或者是外界特殊事件的影响,而给企业或品牌带来危机,企业针对危机所采取的一系列自救行动,包括消除影响、恢复形象,就是危机公关。
  • Flash Video

    Flash Video是什么

    Flash Video 是一种网络视频格式,用作流媒体格式,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上有效使用等缺点。