1 方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明;
2 提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。
2)h文件里应该有什么
3)h文件不应该有什么
4)extern问题
5)include包含问题
#ifndef _FILENAME_H,
#define _FILENAME_H
……
#endif
6)应该在那儿包含h文件
编写的程序一般会有.H文件和相对应的.C文件,.H文件是声明所用,.C文件是其函数实现部分。在调用时只要包含.H文件即可,我们没有听说过#i nclude "delay.c"这类的程序,同时也不提倡使用这个形式。
在delay.h文件中:
#ifndef __DELAY_H__
#define __DELAY_H__
extern void Delayms(unsigned int n);
#endif
在delay.c文件中:
#i nclude
//for crystal 11.0592M
void Delayms(unsigned int n)
{
}
在主程序main.c中
#i nclude
……
上述方法仍然要求每建立一个工程就需要把对应的头文件复制到工程的文件夹里,这样看来仍然是比较麻烦的,这时还有另外一中方法就是将做好的头文件放在一个文件夹中,然后将这个文件夹整体拷贝到..KEILC51INC下面,以后若需要使用某个头文件,就如使用KEIL自带的头文件一样方便了,在主函数mani()之前有一句#i nclude 就可以在main()中使用其中的函数了。
参考资料:
1)h文件里变量(函数)申明用不用extern
http://www.unixresources.net/linux/clf/program/archive/00/00/33/65/336569.html
2).c文件和.h文件的概念与联系
http://www.vckbase.com/document/viewdoc/?id=1607
3)过马路,左右看
http://www.vckbase.com/document/viewdoc/?id=1606
4).c 和 .h文件的不同
http://hi.baidu.com/mfantastic/blog/item/d6fddd39793494f73a87ce0c
5)C51包含头文件方法
http://blog.ednchina.com/eleclike/52862/message.aspx
int a = 5;
#include "module1.h"
#include "module1.h"
#include "module1.h"
以上程序的结果是在模块1、2、3中都定义了整型变量a,a在不同的模块中对应不同的地址单元,这个世界上从来不需要这样的程序。正确的做法是:
extern int a;
#include "module1.h" int a = 5;
#include "module1.h"
#include "module1.h"
这样如果模块1、2、3操作a的话,对应的是同一片内存单元。
上一篇:51单片机介绍及头文件
下一篇:基于AT89C2051+ds18b20的温度计程序设计
推荐阅读最新更新时间:2024-03-16 14:44