打印

请高手赐教c语言预处理指令的#define的一个问题。

[复制链接]
2594|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wchangtao|  楼主 | 2007-10-30 22:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位高手,实在不得已问一下,我找遍了资料也没找到。 在uc/osII中,有这么一句#define OS_CPU_GLOBALS。 还有在uc/osII的OS_CPU.H中有:
#ifdef  OS_CPU_GLOBALS
#define OS_CPU_EXT
#else
#define OS_CPU_EXT  extern
#endif
#define 为什么只有一个参数?只有一个参数何意?请赐教,小弟不胜感激。

相关帖子

沙发
gunaaaa| | 2007-10-31 20:59 | 只看该作者

定义为空

使用特权

评论回复
板凳
db10| | 2007-10-31 22:39 | 只看该作者

呵呵

#ifdef  OS_CPU_GLOBALS
#define OS_CPU_EXT
#else
#define OS_CPU_EXT  extern
#endif

说这个还要从开始用这个说起,比较罗嗦。

如我现在有A.C,B.C,A.H三个文件
在A.H中有定义:
#ifdef  OS_CPU_GLOBALS
#define OS_CPU_EXT
#else
#define OS_CPU_EXT  extern
#endif

OS_CPU_EXT int a;

现在A.c中使用:
#define OS_CPU_GLOBALS
#include A.H
 a=1;

如果在B.c中使用:
#include A.H
则也可以直接使用 a=2;

这样用起来很方便,每次加上#include A.H后就可以直接使用A.H所有变量

如果还有不明,请仔细想想再来聊,呵呵

使用特权

评论回复
地板
soso| | 2007-11-1 08:15 | 只看该作者

仔细想想不难

   这样设计的好处是,一个项目的诸多*.c文件共用一个*.h文件,让文档结构清晰,不过唯一的坏处是增加了编译器编译时间。

使用特权

评论回复
5
ayb_ice| | 2007-11-1 08:25 | 只看该作者

主要用于变量声明

使用特权

评论回复
6
mannerfh| | 2007-11-5 08:59 | 只看该作者

为了

为了不重复包函文件或变量对吧

使用特权

评论回复
7
wchangtao|  楼主 | 2007-11-5 11:21 | 只看该作者

多谢db10

多谢多谢,看明白了!多谢各位帮忙!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

21

帖子

0

粉丝