黑马程序员技术交流社区

标题: C语言中头文件和#include的用法 [打印本页]

作者: 石油小硕    时间: 2015-11-18 21:06
标题: C语言中头文件和#include的用法
C语言头文件的用法
一、头文件
是C语言中以  .h 结尾的文件。如:stdio.h;
当程序需要有多个 .c 文件组成时;
用于声明(描述)一个函数,把多个代码文件(.c)中的函数,声明在这个文件中,以便于重用、防止定义的冲突。
怎么定义:?
新建一个.h结尾的文件,把需要用到的函数的声明直接放在里面。
怎么引用:?
自定义的头文件:#include “头文件名.h”;
编译器类库里面的头文件:#include <头文件名.h>
特点:
(1)在头文件中仅做声明,不做具体操作;类似于把所有的声明放在一起;也可以把编译器类库里的头文件放进去。共同开发时,只能有一个main函数!切忌
(2)在头文件有声明,只能确保编译成功成.o文件,但不能确保链接成功。
(如果没有对相应的被调函数做具体实现,注意,具体实现是在.c文件中,那么只能编译成.o文件,一旦链接就会报错。因为在.o文件是不能直接运行的,需要链接,链接就是把所有生成的.o文件及所用到的库文件全部链接再编译成机器码才能运行,如果被调函数没有具体实现,那么其虽然可以生成.o文件,但是没有对应的库文件,所以编译不成机器码。故不能链接成功)
(3)自定义的头文件引用时必须要有路径。
(因为是自定义的,所以.h文件在引用时必须要有路径,如果其和.c文件在同一路径,则直接引用就行,因为它们的路径是一样的)
相对路径:是a相对于b的位置,它们前面从根目录开始相同的部分可以不显示。
绝对路径:就是从根目录开始一步步显示出来的路径,知道绝对路径就可以找到任何一个文件。
七、#include的用法
是C语言中的一个预处理指令,当程序需要用到别的文件时,用于把一个文件的内容拷贝到这行命令所在的位置。
把.txt文件中的内容原封不动的复制粘贴到程序中:

***
在这里:其实可以看出来任何格式的文件(.h/.txt)都可以用来存放函数的声明当作头文件,但是为了统一,约定使用  .h格式的文件作为头文件。分工明确,才能保证效率!
***
(#include和头文件.h相配合的作用就是通过预处理指令,把头文件的内容Copy到预处理命令所在的位置,这也能解释了为什么.h文件在引用时需要有路径,因为计算机需要知道要Copy 的文件在哪里,而通过路径就可以找到的。.#include在执行时,需要引用的是.h的相对路径。)
特点:
(1)可以定义在函数内,也可以放在函数外;但是一定要符合当前函数的语法。
(2)必须包含路径,省略或./表示当前路径,/开头表示绝对路径,../表示上一层路径;
(3)以#开头,后面不能加分号;
(4)必须定义在要使用之前,否则可以编译通过生成.o文件,但不能链接成功。



作者: 能不能行    时间: 2015-11-18 21:31
666666666666666666
作者: arhui    时间: 2015-11-18 21:52
等大神来答吧
作者: seahom007    时间: 2015-11-18 22:00
66666666666666666666




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2