单片机C语言头文件问题

程序如下(有部分省略)
#include <AT89X52.h>
#include "DS18B20.h"
#define uint unsigned int
#define uchar unsigned char //宏定义
#define SET P3_1 //定义调整键
........
.........
/*****END*****/

DS18B20.h:

#include <AT89X52.h>
#define DQ P3_6 //定义DS18B20总线I/O
........
.........
/*****END*****/

在这里#include "DS18B20.h" 和DS18B20.h:分别是什么意思,如果第二段程序不写DS18B20.h: #include <AT89X52.h>这两句,同时第一段程序中也删除#include "DS18B20.h" 这一句,效果同不改之前的一样吗,谢谢!!!!

#include "DS18B20.h"这个是个。人定义的头文件,便于其他地方使用而已,这个应该定义的是温度传感器的头文件。如果不用这个#include <AT89X52.h>,就得自己定义一些你需要用到的位了,#include "DS18B20.h"。如果不写这个,则没法调用你写的那个温度的程序。追问

那我在网上看到一些DS18B20的演示程序都没有如此写法,开始写#include(reg52.h),后开始写宏定义,位定义等,接着开始写子函数等,没有自定义温度传感器的头文件,这两者又有什么区别,我如果不自定义温度传感器的头文件.而写一些如初始化子函数,写子函数等,在主程序内调用相关的函数,效果一样吗,谢谢

追答

写头文件是基于模块化编程的思想,当然你也可以把所有的函数等写在一个.c文件中,但是做工程时候,这样会很麻烦,尤其是当程序代码有上千行或者更多时候。模块化的优点就是你只需添加头文件就可以调用了,不用你重新再写这些东西。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-03
这些头文件一般定义了一些数据类型和函数,与单片机相关。没有对应的头文件,那些函数比如扫描键盘,送LED显示等等就没有意义了。
就像Windows编程,没有windows.h,你的那些函数是无法识别且编译的。
相似回答
大家正在搜