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

在看uCOS II V2.91版本源代码时,在ucos_ii.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>

以前,我将ucos_ii.c与上面的os_core.c等都添加到工程编译,出现许多“重复定义”的错误。以后,将os_core.c等文件都从工程中移除,只保留ucos_ii.c,则编译经过! 测试

咱们知道,经过#include "*.h"能够引用其它源文件中导出的符号,而经过使用#include "*.c"文件能够控制要将哪些源文件编译到工程中。 spa

好比,这里若是不须要消息邮箱功能和互斥信号功能,则将对应的.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,而不用麻烦地在每次测试不一样功能时都重复的把旧的功能文件删除,再添加新的功能文件。 code

经过控制要编译的文件,能够减小最终生成代码的代码段长度,节省存储空间。 编译

许多程序设计人员没有丝毫的节省存储空间的概念,常常把与工程无关的文件包含到工程中。(惭愧~~~~(>_<)~~~~ ) 程序设计

相关文章
相关标签/搜索