C语言头文件的作用
2011-08-28 16:09
246 查看
C99中规定, 所有顶层的默认存储类标志符都是extern !!老子又猜对了
头文件中声明的函数,默认都是extern前缀。但是为了我们程序员方便,我们采取下面的手段:
我个人认为是extern催生了头文件的诞生。
在没有头文件的情况下,所有本.c文件引用的外部函数定义,都要在自己.c文件内声明 并且加前缀extern
在代码增多,项目复杂的情况下,这个手段有点粗糙,那么我们把想提供给外部.c文件使用的函数放在头文件中(默认是extern前缀)
那么当其他某个.c文件需要用到这些函数的时候,只要包含了这个头文件,那么在预处理后,头文件被完整的复制到.c文件内,
这也就用另外一种间接的方式完成了原来的工作。
我们这么使用,如果某个函数不想被外部使用(很多时候这样),我们就在.c文件开始声明(并加以static前缀)这样,外部函数就找不到了
如果我们想让外部.c文件找到这个函数,就声明在头文件中。想使用的.c文件包含这个头文件就好。
编译的时候,只要每个函数都又声明就可以。
连接的时候,连接器发现本.o文件中没有某个函数的定义,根据当前连接 对象列表(我们把一堆.o文件连接到一块,这一堆,叫做连接对象列表),
去找函数的定义
头文件中声明的函数,默认都是extern前缀。但是为了我们程序员方便,我们采取下面的手段:
我个人认为是extern催生了头文件的诞生。
在没有头文件的情况下,所有本.c文件引用的外部函数定义,都要在自己.c文件内声明 并且加前缀extern
在代码增多,项目复杂的情况下,这个手段有点粗糙,那么我们把想提供给外部.c文件使用的函数放在头文件中(默认是extern前缀)
那么当其他某个.c文件需要用到这些函数的时候,只要包含了这个头文件,那么在预处理后,头文件被完整的复制到.c文件内,
这也就用另外一种间接的方式完成了原来的工作。
我们这么使用,如果某个函数不想被外部使用(很多时候这样),我们就在.c文件开始声明(并加以static前缀)这样,外部函数就找不到了
如果我们想让外部.c文件找到这个函数,就声明在头文件中。想使用的.c文件包含这个头文件就好。
编译的时候,只要每个函数都又声明就可以。
连接的时候,连接器发现本.o文件中没有某个函数的定义,根据当前连接 对象列表(我们把一堆.o文件连接到一块,这一堆,叫做连接对象列表),
去找函数的定义
相关文章推荐
- C语言头文件的作用(转载)
- c语言头文件的作用
- 正月龙-----C语言头文件的作用
- C语言和C++头文件的区别、作用
- [转载]C语言头文件的作用
- C语言头文件的作用
- C语言头文件的作用(示例)
- c语言头文件的作用以及写法
- C语言头文件的作用
- C语言头文件的作用
- c语言头文件作用
- 在C语言头文件中,#ifndef、#define、#endif的作用?
- c语言头文件的作用
- C语言头文件的作用
- c语言:常用各种头文件的作用,如:#include <stdlib.h>
- C语言头文件的作用
- C语言头文件的作用
- C语言头文件的作用(转载)
- C语言头文件里,一开头的宏定义 #ifndef 的主要作用
- C语言头文件的作用