想做嵌入式工程师,怎么能不知道.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 )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
UltraSoC嵌入式分析技术与Imperas虚拟平台联手助力多核开发及调试

UltraSoC和Imperas今日宣布:双方将达成一项广泛的合作,为多核系统级芯片(SoC)开发人员提供结合了嵌入式分析技术和虚拟平台技术的强大组合。

恩智浦将嵌入式AI环境延伸至边缘处理应用

恩智浦半导体(纳斯达克代码:NXPI)今天宣布推出易于使用的泛化机器学习开发环境,用于构建具有高端功能的创新应用。

JTAG和支持JTAG的CPU

通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于Debug;一般支持JTAG的CPU内都包含了这两个模块。

计算机模块让创新没那么难
计算机模块让创新没那么难

2018年,市场聚光灯聚焦在了以下几个领域:智能制造、物联网、人工智能、新能源汽车等。这些热门领域的快速发展为电子行业带来极大的发展机遇,对应用厂商提出了全新的设计需求,也让对功能开发起决定性作用的单板计算机面临着全新的机遇和挑战。

齐聚深圳、嵌入式专家研讨人工智能时代发展机遇

近日,嵌入式系统联谊会第23次主题讨论会就这些问题,邀请业内知名专家和学者做了深入的探讨!本次会议由嵌入式系统联谊会、深圳北航新兴产业技术研究院主办,深圳北航物联网研究院、物联网咖啡承办,北京航空航天大学出版社、泰智会共同协办。主题为”人工智能助力物联网产业发展”。

更多资讯
莫大康:迎接存储器业的挑战

较为乐观的估计,能用5年左右的时间,达到全球市场(2018年存储器业产值预测可达1,500亿美元)占比的3% - 5%,也即DRAM与NAND的累加产值能达到近50亿美元,表明中国存储器业的突围取得了初步的成功。

宜鼎iCAP云端管理平台实现终端远程智能管理,降低人力成本

宜鼎芯存Innodisk于今年Computex现场展出iCAP云端储存管理平台,以软件、硬件及固件跨界整合的优势,强势承接全球持续升温的智能工控管理需求。

旺宏电子:NOR Flash与NAND Flash内存都满载啦

内存供货商旺宏电子(Macronix),今日举行股东会,董事长吴敏求表示,NOR Flash与NAND Flash内存的需求持续满载,工业与车用的比例将进一步提升。

一文看懂STM32F4总线架构

在STM32F4中,有5个最重要的时钟源,为HSI、HSE、LSI、PLL。其中PLL实际是分为两个时钟源,分别为主PLL和专用PLL。在这五个中HSI、HSE以及PLL是高速时钟,LSI和LSE是低速时钟。

2018年第1季全球服务器销售概况

Gartner 6月11日公布,2018年第1季全球服务器销售额年增33.4%至166.93亿美元、出货量年增17.3%。

Moore8直播课堂
电路方案