原创 include .h和.c文件

2009-3-5 23:52 3887 3 6 分类: 软件与OS

最近看到有的程序中在头文件的位置直接include 一个.c文件,其实之前是根本没见过这种写法(呵呵,比较孤陋寡闻,见笑见笑)


话说,在看到这么一个程序之后,就在考虑这样写的好处是什么,为什么之前看到的都是include一个.h文件呢?这还都怪自己对基本的内容不清楚,才会提出这样的问题出来。


其实,一般的写法都是include一个.h文件。为什么呢?因为.h文件是编译器在编译的时候首先进行编译的,也就是你的程序在运行开始之前,系统先编译了你的h文件中的内容,然后再开始执行程序。而.c文件,虽然程序在执行时可以通过c文件来互相调用不同文件中的内容,但是由于c文件中存在的函数被调用之后,然后编译器在编译了两个c文件之后会发现有一个内容被编译了两次,这样,就会产生一个错误。当然,在编译时是能够通过的,只是在link时会产生一点错误。另外,如果include一个.c文件,会首先编译这个c文件,这样如果这个c文件中存在一些和其他文件的关联的话,这样就会产生编译的先后顺序的问题了。

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户377235 2012-11-28 11:23

似乎说的还不错

用户191889 2009-3-13 12:04

我也受教了:)

tengjingshu_112148725 2009-3-12 23:58

受教了:0
相关推荐阅读
用户185223 2009-04-02 23:27
红外发射第一步
一直想做点无线方面的东西,但是搞高频的东西的话需要一段时间,不是说做就能做的,所以只好选了个简单点的东西来做着玩。首先考虑到的就是红外发射和接收。网上有很多资料介绍使用一些编码和解码的芯片来进行多按键...
用户185223 2009-03-31 21:11
关于LED的PWM驱动
一直听说LED的调光分为模拟调光,之前一直理解错误,以为用PWM方式控制的电源来驱动LED的话即是模拟调光,后来才发现所谓的PWM调光是指在输出一定恒流的情况下再加一个PWM的载波,这样才能实现调光。...
用户185223 2009-03-10 21:34
关于回生的理解
    在现下的电动车之中,始终能听到柔性刹车这个名词,用专业点的词汇,那就是回生制动功能。能够对电池进行反充电,延长续始里程。听起来怪高级的,但是个人感觉还是比较鸡肋的一个功能,虽说真的能够延长续始...
用户185223 2009-03-05 21:15
原来还有不用开的狗门
    虽然用的单片机不是很多,但是还真是没有听说过看门狗从运行开始就自动打开的。    用到的这款芯片中就是这样一个。怪不得我想怎么我对一个变量设定之后怎么老是自动复位呢,原来是忘记关狗门了。NEC...
用户185223 2009-02-22 21:04
友元函数
继续Cpp构造之后的概念就是友元了,这个也是C++中比C多出来的一部分。先说说感受吧,其实和函数调用差不多,笔者目前其实还没有很确切的搞清楚构造函数啊,友元啊这些定义出来的具体意义,和函数调用的具体区...
EE直播间
更多
我要评论
3
3
关闭 站长推荐上一条 /3 下一条