历史上的今天
返回首页

历史上的今天

今天是:2025年04月02日(星期三)

正在发生

2021年04月02日 | 51单片机C中.c文件和.h文件

2021-04-02 来源:eefocus

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()中使用其中的函数了。


推荐阅读

史海拾趣

Cygnal Integrated Products Inc公司的发展小趣事

在20世纪90年代末,Cygnal Integrated Products Inc由几位热衷于微控制器技术的工程师创立。他们看到了嵌入式系统在电子产品中的巨大潜力,并决定专注于开发高性能、低功耗的微控制器。通过不断的技术创新和市场调研,Cygnal成功推出了其首款产品——一款集成了多种外设接口的8位微控制器,受到了市场的热烈欢迎。

AF International公司的发展小趣事

作为一家具有社会责任感的企业,AF International始终关注社会公益事业的发展。公司积极参与扶贫、教育等公益活动,捐资助学、扶贫济困,为社会做出积极贡献。此外,AF International还注重环保和可持续发展,采用环保材料和节能技术,降低生产过程中的能耗和排放。这些举措不仅体现了公司的社会责任感,也为公司的可持续发展奠定了坚实基础。

这五个故事分别从不同角度展现了AF International在电子行业中的发展历程和取得的成就,体现了公司的创新精神、国际化视野、社会责任感等优秀品质。

High Energy Corp公司的发展小趣事

在电子行业发展日新月异的背景下,AF International始终坚持技术创新,不断推出新产品、新技术。公司投入大量资金用于研发,引进先进的生产设备和测试仪器,确保产品质量的稳定提升。此外,AF International还积极与高校、科研机构合作,共同开展技术研发项目,推动电子行业的创新发展。正是这些技术创新成果,使得AF International在行业中始终保持领先地位。

东软载波(EastSoft)公司的发展小趣事

近年来,东软载波积极响应国家“一带一路”倡议,重点聚焦沿线国家的低压配用电网、能源互联网建设需求。公司依托成熟的电力物联网通信技术储备及经验,参与多个国家的智能电表项目,推动电网智能化改造。这些项目的成功实施不仅促进了当地电力基础设施的升级换代,也为东软载波在国际市场上树立了良好的口碑。

德旭电子(DEXU)公司的发展小趣事

在电子行业的浪潮中,德旭电子(DEXU)于XXXX年悄然成立。当时,创始人李先生凭借对电子技术的深刻理解和市场的前瞻性判断,决定涉足这一领域。初创时期的德旭电子面临着资金短缺、技术薄弱、市场竞争激烈等多重挑战。然而,李先生带领的团队凭借坚定的信念和不懈的努力,成功研发出首款具有竞争力的电子产品,并在市场上获得了一定的认可。

为了提升产品质量和技术水平,德旭电子不断加大研发投入,积极引进先进技术和设备。同时,公司还注重人才培养和团队建设,吸引了一批具有丰富经验和专业技能的人才加入。这些努力为德旭电子的后续发展奠定了坚实的基础。

Daewoo公司的发展小趣事

除了汽车产业外,Daewoo公司在家电领域也取得了不俗的成绩。随着消费者对家电品质要求的不断提高,Daewoo公司不断推出高品质、高性能的家电产品,赢得了消费者的信赖和好评。同时,公司还积极拓展国际市场,将产品出口到世界各地,进一步提升了品牌知名度和影响力。

这些故事共同展现了Daewoo公司在电子行业中的发展历程和取得的成就。虽然公司经历了许多挑战和困难,但凭借其坚定的信念和不懈的努力,最终实现了多元化发展,成为了韩国乃至全球电子行业的佼佼者。

问答坊 | AI 解惑

LINUX 内核学习

希望大家多多支持…

查看全部问答>

2009论坛最辛苦管理员年终红包投票

2009年过去了,论坛在大家的努力中度过了,这个过程中管理员可是不分工作时间还是休息时间都在勤恳的为了论坛奉献自己的力量,我最先认识 的就是SOSO她的工作热情让我敬佩,对论坛来说她绝对是100%的努力,还有小志、小娜每天她们都工作台到很晚才 ...…

查看全部问答>

IP高清监控系统的技术探讨和设计实践

by 千家网 jandar 作者按:面前已经陆续发表了若干个有关IP高清监控系统的基础介绍文章,与一些国外IPC产品的点评,现应一些朋友的要求,发一个IP高清监控系统的设计实例,里面有许多本人在设计过程中碰到的问题,和一些解决的方法,与广大安防从 ...…

查看全部问答>

一个很诡异的现象,在场的所有人包括电工都不能解释

前段时间去过一个工厂测试:一个车间就一台80KVA的变压器单独供电,三相四线由变压器配电房直接拉到车间,线路大约有120米,没有补偿。在车间总进线处测量得到的数据正常: A相:有功11.55KW,功率因素0.723,视在功率16.32KVA,无功11.30KW,电压2 ...…

查看全部问答>

高薪 求反汇编的高手

说明:本人有一段程序是LIB库其中封存了几个函数,找有经验的人进行反汇编工作,要求反汇编成C源程序。 我电话 15210509180   有高手请与我联系啊…

查看全部问答>

IssueVendorTransfer USB_DEVICE_REQUEST

IssueVendorTransfer执行对Device的写操作失败,GetLastError为31 我的USB_DEVICE_REQUEST是这样的          req.bmRequestType = USB_TYPE_VENDOR|USB_RECIP_DEVICE;//(0x02hDevice,       &nbs ...…

查看全部问答>

p0口上拉电压接3.3V

如题,当p0口接上拉电阻,而且上拉电压接3.3v而不是5v的时候,那么p0口输出高电平时,p0口的电压是多少呢?…

查看全部问答>

论坛里有兄弟能共享一下最新版StellarisWare吗

论坛里有兄弟能共享一下最新版StellarisWare吗,申请了好几天了,总没有反应不知道ti现在咋搞的,下载个开发包还得批准。…

查看全部问答>

前辈 前辈们 快来救救我吧 都一周多了

小弟 我卡住了好几天了 希望前辈们指教啊我这个程序是产生相位互差90度 出来的波形是 一样的 怎么回事啊 #include <msp430x14x.h>unsigned int flag1=0,flag2=0,num=0; 全局变量void Init_Clock(void)  &n ...…

查看全部问答>