zoukankan      html  css  js  c++  java
  • 头文件

     

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

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

    头文件的作用

    1. 编写一个源程序时,可以将变量与函数的声明单独写到一个头文件里,这样方便代码的维护。例如c++类的声明就一般写在头文件里。
    2. 编写的源程序可以通过头文件来调用其他源文件里的函数,例如调用库文件,具体的实现则是通过链接器完成的。

    头文件与库文件的区别

    简单来说:库文件通过头文件向外导出接口。链接器通过头文件找到库文件。头文件进行函数的申明,库文件实现函数的定义。比如,printf函数。使用时应包括stdio.h,打开stdio.h你只能看到,printf这个函数的申明,却看不到printf具体是怎么实现的,而函数的实现在相应的C库中。而库文件一般是以二进制形式而不是C源文件形式提供给用户使用的。程序中包括了stdio.h这个头文件。链接器就能根据头件中的信息找到printf这个函数的实现并链接进这个程序代码段里。函数实现的代码从而把这段代码链接到用户程序中去。

    下图是VC++6.0里的文件。

     

     

    使用头文件

    通过#include来使用头文件,#include "xxx.h",或者#include <xxx.h>。

    尖括号:仅指向内置的头文件(编译器的类库路径里面的头文件)。

    双引号:优先指向项目的当前目录中自己写的头文件,如果没有,再指向内置的头文件

    #include一般用在C、C++等语系的编译环境中,这条语句的作用是在此处插入一堆代码,这堆代码在另一个文件里。

    补充

    编译链接的基本过程:

    1. 编译阶段:编译器将include指令全部进行处理,将相关的代码插入到其中,其中对于只有函数声明,而没有函数实现的,就会将这个函数符号存放到一张表中。
    2. 链接阶段:链接器会去其他的目标文件去找这个函数符号的定义,一旦找到了,可执行文件就顺利生成了。

    详细过程可以参考这篇博文:http://blog.csdn.net/nicky_zs/article/details/2166048

  • 相关阅读:
    羊车门悖论
    python--程序语言中的我行我素者
    最大流isap
    约瑟夫环问题
    CF 916 一言题解
    ZJOI2006 书架
    板子
    windows激活流程
    Ant Design 坑
    js+jQuery判断一个点是否在多边形中
  • 原文地址:https://www.cnblogs.com/mlgjb/p/8506270.html
Copyright © 2011-2022 走看看