词条 | 文件头 |
释义 | 文件头是位于文件开头的一段承担一定任务的数据,一般都在开头的部分。头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。 定义文件头是位于文件开头的一段承担一定任务的数据。一般都在开头的部分。 在C语言家族程序中,头文件被大量使用。一般而言,每个C++/C程序通常由头文件(header files)和定义文件(definition files)组成。 C++/C程序的头文件以“.h”为后缀。 头文件一般由三部分内容组成: (1)头文件开头处的版权和版本声明; (2)预处理块; (3)函数和类结构声明等。 在头文件中,用 ifndef/define/endif结构产生预处理块,用 #include 格式来引用库的头文件。头文件的这种结构,是利用C语言进行开发软件所通常具备的,属于公有知识。 一般在一个应用开发体系中,功能的真正逻辑实现是以硬件层为基础,在驱动程序、功能层程序以及用户的应用程序中完成的。根据以上示例,可以发现头文件的主要作用在于调用库功能,对各个被调用函数给出一个描述,其本身不包含程序的逻辑实现代码,它只起描述性作用,告诉应用程序通过相应途径寻找相应功能函数的真正逻辑实现代码。用户程序只需要按照头文件中的接口声明来调用库功能,编译器会从库中提取相应的代码。 头文件是用户应用程序和函数库之间的桥梁和纽带。在整个软件中,头文件不是最重要的部分,但它是C语言家族中不可缺少的组成部分。做一个不算很恰当的比喻,头文件就像是一本书中的目录,读者(用户程序)通过目录,可以很方便就查阅其需要的内容(函数库)。在一本书中,目录固然重要,但绝对不是一本书的核心的、最重要的部分。 解释别看这个文件头和C语言中的头文件读起来很像,但这两个东西其实根本没有一点关系:头文件是一种包含功能函数,数据接口声明的载体文件;而文件头则是直接位于文件中的一段数据,是文件的一部分 大家应该知道,微机中的文件有很多种类型,而相同类型的文件一般还会多多少少有一些不同的地方.文件的类型有EXE,COM,BMP,GIF,WMV,APE,RMVB,FLV,SWF,TXT,CPP,ASM等等,当然有的文件根本就没有文件头,比如说TXT,不信的话可以用UltraEdit打开一个文本文件,除了这个文本文件本身的字符,你不会看到任何其他的数据.不同类型的文件,只要拓展名不同,操作系统就可以识别这个文件,并用不同的程序来打开这个文件了,比如JPEG文件,它的拓展名一般式jpg,当双击这种类型的文件时,操作系统会自动选择相应的程序来打开这个文件,比如用ACDSee打开.但值得注意的是,相同类型的文件是有不同的地方的,这回拿BMP来举例,大家可以想象一下不同的图片之间最大的不同是什么,有人可能会说是内容,我可以告诉你,你想歪了!不知道大家有没有在看到各种不同大小的图像的时候想过图像浏览软件是怎样识别图像的大小的?这其实就是文件头的功劳!下面给大家演示一下: 先用Windows自带的画图软件创建一个64*64像素的16位纯白BMP图像,保存为1.bmp 然后将图像的大小改为128*64,另存为2.bmp 在ACDSee的浏览界面看到如图的两个东西 再用UltraEdit同时打开这两个文件,看看这两个文件的前32个字节: 1.bmp: 00000000h: 42 4D 76 08 00 00 00 00 00 00 76 00 00 00 28 00 ; BMv.......v...(. 00000010h: 00 00 40 00 00 00 40 00 00 00 01 00 04 00 00 00 ; ..@...@......... 2.bmp: 00000000h: 42 4D 76 10 00 00 00 00 00 00 76 00 00 00 28 00 ; BMv.......v...(. 00000010h: 00 00 80 00 00 00 40 00 00 00 01 00 04 00 00 00 ; ..?..@......... 由于这是十六进制的数据,所以要将原来图像的宽度和高度换成十六进制,以便找到我们想要看到的数据 十进制的128等于十六进制的80,十进制的64等于十六进制的40.这样在第二行好像有我们找的数据 这个过程只是为了让大家了解一下文件头,其实这些数据都是有标准的,百度百科的BMP词条就有BMP文件的文件结构 LONG biWidth; // 位图的宽度,以像素为单位(18-21字节) LONG biHeight; // 位图的高度,以像素为单位(22-25字节) 18-21字节的数据是80 00 00 00,这是个双字,其实就是80,内存中的数据就是这么放的,这个不是问题 写这么多大家应该对文件头有一点了解了吧? 文件头就是为了描述一个文件的一些重要的属性,它告诉了打开并处理该文件的程序这些属性,比如上面说的BMP的文件头将长宽像素值告诉了ACDSee,ACDSee会根据文件头中的数据以及图像数据的正文把图像显示出来 常见文件的文件头jpg: 255,216 gif: 71,73 bmp: 66,77 png: 137,80 doc: 208,207 docx: 80,75 xls: 208,207 xlsx: 80,75 js: 239,187 swf: 67,87 mp3: 73,68 wma: 48,38 mid: 77,84 rar: 82,97 zip: 80,75 xml: 60,63 用文件头判断。直接读取文件的前几个字节。 常用文件的文件头如下(16进制): JPEG (jpg),文件头:FFD8FF PNG (png),文件头:89504E47 GIF (gif),文件头:47494638 TIFF (tif),文件头:49492A00 Windows Bitmap (bmp),文件头:424D CAD (dwg),文件头:41433130 Adobe Photoshop (psd),文件头:38425053 Rich Text Format (rtf),文件头:7B5C727466 XML (xml),文件头:3C3F786D6C HTML (html),文件头:68746D6C3E Email [thorough only] (eml),文件头:44656C69766572792D646174653A Outlook Express (dbx),文件头:CFAD12FEC5FD746F Outlook (pst),文件头:2142444E MS Word/Excel (xls.or.doc),文件头:D0CF11E0 MS Access (mdb),文件头:5374616E64617264204A WordPerfect (wpd),文件头:FF575043 Adobe Acrobat (pdf),文件头:255044462D312E Quicken (qdf),文件头:AC9EBD8F Windows Password (pwl),文件头:E3828596 ZIP Archive (zip),文件头:504B0304 RAR Archive (rar),文件头:52617221 Wave (wav),文件头:57415645 AVI (avi),文件头:41564920 Real Audio (ram),文件头:2E7261FD Real Media (rm),文件头:2E524D46 MPEG (mpg),文件头:000001BA MPEG (mpg),文件头:000001B3 Quicktime (mov),文件头:6D6F6F76 Windows Media (asf),文件头:3026B2758E66CF11 MIDI (mid),文件头:4D546864 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。