想做嵌入式工程师,怎么能不知道.c文件和.h的区别呢

2017-12-28 17:04:43 来源:电子发烧友
标签:
C文件,是程序设计中的一个重要概念。所谓“文件”一般是指存储在外部介质上数据的集合。一批文件是以数据的形式存放在外部介质(如磁盘)上的。操作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部介质上的数据,必须先按文件名找到指定的文件,然后再从该文件中读取数据。
 
文件是程序设计中的一个重要概念。所谓“文件”一般是指存储在外部介质上数据的集合。一批文件是以数据的形式存放在外部介质(如磁盘)上的。操作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部介质上的数据,必须先按文件名找到指定的文件,然后再从该文件中读取数据。要向外部介质上存储数据也必须先建立一个文件(以文件名标识),才能向它输出数据。
 
 
1h文件作用
 
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__
 
externvoidDelayms(unsigned int n); #endif
 
在delay.c文件中: //函数实现部分 #include
 
//for crystal11.0592M
 
voidDelayms(unsigned int n) {
 
unsignedinTI,j; for(j=n;j》0;j--) for(i=112;i》0;i--); }
 
在主程序main.c中
 
#include //在主程序包含.h文件,不能包含.c文件 ……
 
上述方法仍然要求每建立一个工程就需要把对应的头文件复制到工程的文件夹里,这样看来仍然是比较麻烦的,这时还有另外一种方法就是将做好的头文件放在一个文件夹中,然后将这个文件夹整体拷贝到。.KEILC51INC下面,以后若需要使用某个头文件,就如使用KEIL自带的头文件一样方便了,在主函数mani()之前有一句#include 就可以在main()中使用其中的函数了。
 
 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
最新经济高效入门级平台 面向高端嵌入式运算

提供标准和定制化嵌入式计算机板卡与模块的领先供应商—德国康佳特科技,推出全新跌破价格的计算机模块,该模块基于英特尔最新酷睿™ i3-8100H 处理器平台,是高端嵌入式运算的入门款模块。

Tengine,可能是最好用的Arm嵌入式系统AI框架了!

边缘AI应用正处于大规模落地的前夕,巨大的IoT市场和革命性的AI技术产生的剧烈交互将带来前所未有的应用革命和商业机会。那么在边缘设备部署AI应用的瓶颈都有哪些?

UltraSoC嵌入式分析IP已被Kraftway选用于其固态硬盘控制器产品

UltraSoc 今日宣布其嵌入式分析技术已授权给Kraftway公司,用于其先进的固态硬盘(SDD)控制器产品。

基于嵌入式Linux 平台上利用USB 摄像头采集视频图像

目前,嵌入式系统在视频监控中的应用越来越广泛。伴随着网络的强大功能,视频监控更侧重网络监控方案,要求体积小、远程化、成本低、功耗小、操作界面人性化等。本系统基于嵌入式Linux 平台上利用USB 摄像头采集视频图像,通过视频图像压缩及结合网络进行视频图像传输,使远程监控成为可能。

μClinux、μC/OS-II、eCos、FreeRTOS和djyos操作系统的特点及不足

基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μClinux、μC/OS-II、eCos、FreeRTOS和都江堰操作系统(djyos)。

更多资讯
基于S3C44BOX的多台设备远程监控系统设计

嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

语音通信中时延时延是怎么产生的?该如何减小?

时延是语音通信中的一个重要指标,当端到端(end2end)的时延(即one-way-delay,单向时延)低于150Ms时人感觉不到,当端到端的时延超过150Ms且小于450Ms时人能感受到但能忍受不影响通话交流,当端到端的时延大于1000Ms时严重影响通话交流,用户体验很差。

高盛预计存储芯片需求将下滑 美芯片股应声普跌

投行高盛警告称,存储芯片需求将下滑。受此影响,美国芯片股于当地时间周三普遍下跌。

存储器风吹草动,国内厂商如何不“风声鹤唳”?
存储器风吹草动,国内厂商如何不“风声鹤唳”?

存储器在连续两年走高之际,开始掉头释放出下探信号。虽然强周期波动的存储器价格起伏是正常,但对于仍在计划量产的国内三大厂商而言,若产能都如期释放,而届时市场供过于求之势不减,那么价格战将一触即发。国内厂商如何耐得住亏损,不断加强后续的资金投入?

SSD攻势凶猛,HDD却是打不死的小强?
SSD攻势凶猛,HDD却是打不死的小强?

闪存供过于求已经是既定的事实,过去两三年存储产业推动闪存制造工艺的 3D 化有成,使得产能大幅扩充,影响所及,闪存的报价也快速下杀,当然,对闪存生产业者而言,恐怕将迎来一场难以避免的血战,但对于终端厂商而言,则是个利好消息。

Moore8直播课堂
电路方案