分类: C/C++
2011-05-29 17:18:05
在这里不得不说*.h文件的由来,以便更好理解头文件的作用。在最初是没有*.h文件的,所以在一个源文件的开头总是写满了各种的声明,最为主要的是当几个源文件所要用的函数或变量相同时 ,也得在每个文件都挨个声明,这导致使用极为不便,和程序修改容易出错、和程序维护起来麻烦。所以后来就出现了*.h文件来包含函数和变量的声明,要使用这些函数和变量是 #include<*.h>就得了 编译器在编译到此时把include指令删除,然后把include指令所指定的头文件内容插入当前位置。
林锐写的高质量C/C++编程上头文件的作用的简短描述:
(1)通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。
(2)头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。
编译器的输入是实现文件,每一个实现文件对编译器来说是一个单独的翻译单元,编译器将其翻译为目标代码,通常是一个obj文件。最后由链接器将所有的obj文件连成一个完整的可执行程序。