找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1503|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机知识概述

[复制链接]
跳转到指定楼层
楼主
ID:407794 发表于 2018-12-14 21:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1)h文件作用

1 方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明;

2 提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。

2)h文件里应该有什么

常量,结构,类型定义,函数,变量申明。

3)h文件不应该有什么

变量定义, 函数定义。

4)extern问题

对于变量需要extern;

对于函数不需要因为函数的缺省状态是extern的.如果一个函数要改变为只在文件内可见,加static。

5)include包含问题

虽然申明和类型定义可以重复,不过推荐使用条件编译。

#ifndef _FILENAME_H,

#define _FILENAME_H

……

#endif

6)应该在那儿包含h文件

在需要的地方.比如某个提供接口的h文件仅仅被1.c文件需要,那么就在1.c文件里包含。

编写的程序一般会有.H文件和相对应的.C文件,.H文件是声明所用,.C文件是其函数实现部分。在调用时只要包含.H文件即可,我们没有听说过#include "delay.c"这类的程序,同时也不提倡使用这个形式。

在delay.h文件中: //对调用的函数声明

#ifndef __DELAY_H__

#define __DELAY_H__

extern void Delayms(unsigned int n);

#endif

在delay.c文件中: //函数实现部分

#include

//for crystal 11.0592M

void Delayms(unsigned int n)

{

unsigned int i,j;

for(j=n;j>0;j--)

for(i=112;i>0;i--);

}

在主程序main.c中

#include //在主程序包含.h文件,不能包含.c文件

……

上述方法仍然要求每建立一个工程就需要把对应的头文件复制到工程的文件夹里,这样看来仍然是比较麻烦的,这时还有另外一中方法就是将做好的头文件放在一个文件夹中,然后将这个文件夹整体拷贝到..KEILC51INC下面,以后若需要使用某个头文件,就如使用KEIL自带的头文件一样方便了,在主函数mani()之前有一句#include 就可以在main()中使用其中的函数了。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表