#ifndef
MYHEADFILE
#define
MYHEADFILE
void
InitInterpolation()
void
Draw_Border()
void
Draw_Background()
void
Draw_Gray()
#endif
/*以下是test.c的内容*/
#include
"test.h"
/*后面就是各个函数的实现*/燃告
同项目中其他各个文件需要使用这些函数时只需要下面这样一句:
#include
"test.h"
千万不要包含.c文件,会出现悔知重复定义问题
1、一般做法是头文件里只写 函数 原型。函数定义部分可以编译成 .obj 形式。应用时,笑野调用程序里销手写头文件和调用语句,编译时,把.obj 链接进去就可以了。你也可以把头文件和 .obj 给别人,别人可以使用你的函数,但看不见你的源程序 -- 库程序的基本原理就是这样的。当然,不编成.obj ,而直接把10多个函数源程序写进去也可以。
2、C语言头文件碰斗喊
(1)在C语言家族程序中,头文件被大量使用。一般而言,每个C++/C程序通常由头文件(header files)和定义文件(definition files)组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。 .c就是你写的程序文件。
(2)一般在一个应用开发体系中,功能的真正逻辑实现是以硬件层为基础,在驱动程序、功能层程序以及用户的应用程序中完成的。头文件的主要作用在于多个代码文件全局变量(函数)的重用、防止定义的冲突,对各个被调用函数给出一个描述,其本身不需要包含程序的逻辑实现代码,它只起描述性作用,用户程序只需要按照头文件中的接口声明来调用相关函数或变量,链接器会从库中寻找相应的实际定义代码。
(3)从以上结构图来看,头文件是用户应用程序和函数库之间的桥梁和纽带。在整个软件中,头文件不是最重要的部分,但它是C语言家族中不可缺少的组成部分。编译时,编译器通过头文件找到对应的函数库,进而把已引用函数的实际内容导出来代替原有函数。进而在硬件层面实现功能。
比如你要写一个头文旦迟姿件叫utils.h,里面声旦判明了一个一个函数int add(int a, int b),那头文件里的内容是这样的:#ifndef UTILS_H
#define UTILS_H
int add(int a, int b)
#endif
-------分割线------
然后再创一个文件utils.c,里面定义函模绝数add
#include "utils.h"
int add(int a, int b)
{
return a + b
}
-------分割线------
然后假如你想在main.c里使用这个头文件,就把utils.h utils.c放到main.c所在的文件夹里,然后在main.c里这么写
#include <stdio.h>
#include "utils.h"
void main(void) {
printf("%d", add(2,3))//5
}
------分割线------
上面有些不是硬性规定,但是希望你能遵守,养成好习惯,在头文件里面只声明,定义只写在.c里面
还有,因为你现在有两个.c文件了,所以编译的时候不要忘了编译utils.c。(.h是不用编译的)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)