更多课程 选择中心

嵌入式培训
达内IT学院

400-111-8989

嵌入式工程师,你知道.c文件和.h的区别吗?

  • 发布:嵌入式培训
  • 来源:嵌入式学习笔记
  • 时间:2018-03-20 15:21

.c文件是程序设计中的一个重要概念。所谓“文件”一般是指存储在外部介质上数据的集合。一批文件是以数据的形式存放在外部介质(如磁盘)上的。操作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部介质上的数据,必须先按文件名找到指定的文件,然后再从该文件中读取数据。要向外部介质上存储数据也必须先建立一个文件(以文件名标识),才能向它输出数据。

 

1 .h文件作用

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

提供接口:对一个软件包来说可以提供一个给外界的接口(例如: 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()中使用其中的函数了。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:初学嵌入式开发ARM的学习方法
下一篇:嵌入式Linux内存管理的一些知识点总结

嵌入式工程师离不开的的IC设计软件

工程师用到的PCB设计软件你用过几个?

看嵌入式Linux设备驱动module_init 的神奇之处!

嵌入式干货分享之你不可不知的嵌入式领域中的各种文件系统

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省