4747|6

21

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

大神们都来看看,这个是什么意思#include "os_q.c" [复制链接]

/*
*********************************************************************************************************
*                                                uC/OS-II
*                                          The Real-Time Kernel
*
*                          (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
*                                           All Rights Reserved
*
* File : uCOS_II.C
* By   : Jean J. Labrosse
*********************************************************************************************************
*/
#include "includes.h"

#define  OS_MASTER_FILE                       /* Prevent the following files from including includes.h */
#include "os_mutex.c"
#include "os_q.c"

上面这个是我从本论坛中下载的2.52的源代码,该文件名字为UCOS_ii.C,我看不懂既然是.C文件,怎么还可以嵌套C文件(蓝色那两行),这个我在以前是从没有见过的,看不懂这个是干嘛用的,有什么作用

最新回复

开头的这个#include    "includes.h",是一种比较好的编程风格,建议你要学会这种方法。但也请注意不要先入为主,这种风格在文件工程量和复杂度小的时候是很好的,不然就会大幅降低编译效率,当然始终都不会降低程序实际的运行效率。一般单片机、简单嵌入式工程的文件都不会特别大特别复杂,所以你可以在单片机嵌入式编程的情况下大胆用这种风格。 includes.h在这里明显是移植方官方用到的文件(不一定是UCOS2官方的),但不是编译环境的库文件,所以在工程目录下可以找到这个文件,在编译环境下找不到,一定要用双引号。 这个includes.h里面存放着很多其他文件需要用的东西,所以其他的文件基本都直接或间接包含这个includes.h的话将不太需要关心文件包含的一些细节性问题,同时如果再加入一些文件,也仅仅需要小的添加和改动就可以了。以后你还会遇到#include    "public.h",其实和这个#include    "includes.h"是基本一样的。注意理解public.h和includes.h的字面意思。我写代码的风格基本也是这样,另外文件组织和编译组织分层次和模块,文件包含路径采用相对路径的方式。  详情 回复 发表于 2013-1-23 09:09

点评

谁说不能在.c里面包含.c文件,在.h文件里面还能包含.c文件呢。这个因为C太灵活了。只是这个可能是不规范而已。另外,如果这整个的OS支持是以库的方式支持的话,它是可以用.c包含.c的,规范不规范只是阅读范畴的问题  详情 回复 发表于 2013-1-22 18:56
非常感谢你,我懂了:Cry:  详情 回复 发表于 2013-1-22 18:47
点赞 关注

回复
举报

21

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

回复 楼主 lxgree2013 的帖子

非常感谢你,我懂了
 
 

回复

436

帖子

5

TA的资源

五彩晶圆(初级)

板凳
 
原帖由 lxgree2013 于 2013-1-22 17:14 发表
/*
*********************************************************************************************************
*                                                uC/OS-II
*                              ...
谁说不能在.c里面包含.c文件,在.h文件里面还能包含.c文件呢。这个因为C太灵活了。只是这个可能是不规范而已。另外,如果这整个的OS支持是以库的方式支持的话,它是可以用.c包含.c的,规范不规范只是阅读范畴的问题。

点评

说到这个.h文件了,我给你看个 #include \"includes.h\" #include #include #include #include #include 这个也是官网的范例,同样是头文件,为什么有的是用一对引号括起来,有的是  详情 回复 发表于 2013-1-22 21:45
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 板凳 lr2131 的帖子

说到这个.h文件了,我给你看个
#include    "includes.h"
#include   
#include   
#include   
#include   
#include   

这个也是官网的范例,同样是头文件,为什么有的是用一对引号括起来,有的是用<>呢?用<>的都是编译器自带的文件,第一个是UCOS-II的文件,是不是因为这个啊,还是说这样写是个人习惯?

点评

开头的这个#include \"includes.h\",是一种比较好的编程风格,建议你要学会这种方法。但也请注意不要先入为主,这种风格在文件工程量和复杂度小的时候是很好的,不然就会大幅降低编译效率,当然始终都不会降低程  详情 回复 发表于 2013-1-23 09:09
这几个尖括号括起来的文件你可以试着找找在这个工程里,应该是没有的,这说明这几个文件是作为库文件来用的,同时被编译环境支持是不是,就比如说51单片机,上来先有个#include 然后可以使用很多编译环境提供的东西  详情 回复 发表于 2013-1-23 08:52
 
 
 

回复

436

帖子

5

TA的资源

五彩晶圆(初级)

5
 
原帖由 lxgree2013 于 2013-1-22 21:45 发表
说到这个.h文件了,我给你看个
#include    "includes.h"
#include   
#include   
#include   
#include   
#include   

这个也是官网的范例,同样是头文件,为什么有的是用一对引号括起来,有的是用 ...
这几个尖括号括起来的文件你可以试着找找在这个工程里,应该是没有的,这说明这几个文件是作为库文件来用的,同时被编译环境支持是不是,就比如说51单片机,上来先有个#include 然后可以使用很多编译环境提供的东西,其实那些有很多都是在这些库文件里面,这些库文件在编译环境的安装目录下,你可以搜一下能搜到的。如果你写成#include ”reg51.h“
也是可以的,但只是没有用尖括号的好。

尖括号是编译器直接到编译环境内部的路径下找对应的文件,找不到就报错。
双引号是先在当前目录下找,找到了就找到了就不再找了。要没找到就去编译环境内部的路径下找对应的文件,找到就行了,没找到,就报错。

所以一般要是包含编译环境支持的库文件,用尖括号好,用双引号也可以,只是效率低,毕竟要多做些无谓的工作,除非你把库文件拷贝到当前目录下(有时会引出连锁性问题,强烈建议不要这么干)。如果是自己定义的文件,那就一定得用双引号。
 
 
 

回复

436

帖子

5

TA的资源

五彩晶圆(初级)

6
 
原帖由 lxgree2013 于 2013-1-22 21:45 发表
说到这个.h文件了,我给你看个
#include    "includes.h"
#include   
#include   
#include   
#include   
#include   

这个也是官网的范例,同样是头文件,为什么有的是用一对引号括起来,有的是用 ...
开头的这个#include    "includes.h",是一种比较好的编程风格,建议你要学会这种方法。但也请注意不要先入为主,这种风格在文件工程量和复杂度小的时候是很好的,不然就会大幅降低编译效率,当然始终都不会降低程序实际的运行效率。一般单片机、简单嵌入式工程的文件都不会特别大特别复杂,所以你可以在单片机嵌入式编程的情况下大胆用这种风格。

includes.h在这里明显是移植方官方用到的文件(不一定是UCOS2官方的),但不是编译环境的库文件,所以在工程目录下可以找到这个文件,在编译环境下找不到,一定要用双引号。
这个includes.h里面存放着很多其他文件需要用的东西,所以其他的文件基本都直接或间接包含这个includes.h的话将不太需要关心文件包含的一些细节性问题,同时如果再加入一些文件,也仅仅需要小的添加和改动就可以了。以后你还会遇到#include    "public.h",其实和这个#include    "includes.h"是基本一样的。注意理解public.h和includes.h的字面意思。我写代码的风格基本也是这样,另外文件组织和编译组织分层次和模块,文件包含路径采用相对路径的方式。

点评

你真乃神人也。。。:)  详情 回复 发表于 2013-1-23 09:21
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 6楼 lr2131 的帖子

你真乃神人也。。。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表