#include “*.c“文件的妙用

在看uCOS II V2.91版本源代码时,在ucos_ii.c源文件中发现下面的代码:

 1     #include <os_core.c>  
 2     #include <os_flag.c>  
 3     #include <os_mbox.c>  
 4     #include <os_mem.c>  
 5     #include <os_mutex.c>  
 6     #include <os_q.c>  
 7     #include <os_sem.c>  
 8     #include <os_task.c>  
 9     #include <os_time.c>  
10     #include <os_tmr.c>  

在之前,我将ucos_ii.c与上面的os_core.c等都添加到工程编译,出现许多“重复定义”的错误。

之后,将os_core.c等文件都从工程中移除,只保留ucos_ii.c,则编译通过!

我们知道,通过#include "*.h"可以引用其它源文件中导出的符号,

而通过使用#include "*.c"文件可以控制要将哪些源文件编译到工程中。

比如,这里如果不需要消息邮箱功能和互斥信号功能,则将对应的.c文件注释即可,

    #include <os_core.c>  
    #include <os_flag.c>  
    //#include <os_mbox.c>  
    #include <os_mem.c>  
    //#include <os_mutex.c>  
    #include <os_q.c>  
    #include <os_sem.c>  
    #include <os_task.c>  
    #include <os_time.c>  
    #include <os_tmr.c>  

因此,在大型的项目中,如果我们要测试不同的功能,可以为每个功能建立一个.c类型的配置文件,在该配置文件中将需要编译的功能.c文件#include进来就OK,而不用麻烦地在每次测试不同功能时都重复的把旧的功能文件删除,再添加新的功能文件。

通过控制要编译的文件,可以减少最终生成代码的代码段长度,节省存储空间。

许多程序设计人员没有丝毫的节省存储空间的概念,经常把与工程无关的文件包含到工程中。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值