wchangtao 发表于 2007-10-30 22:03

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

各位高手,实在不得已问一下,我找遍了资料也没找到。&nbsp;在uc/osII中,有这么一句#define&nbsp;OS_CPU_GLOBALS。&nbsp;还有在uc/osII的OS_CPU.H中有:<br />#ifdef&nbsp;&nbsp;OS_CPU_GLOBALS<br />#define&nbsp;OS_CPU_EXT<br />#else<br />#define&nbsp;OS_CPU_EXT&nbsp;&nbsp;extern<br />#endif<br />#define&nbsp;为什么只有一个参数?只有一个参数何意?请赐教,小弟不胜感激。

gunaaaa 发表于 2007-10-31 20:59

定义为空

db10 发表于 2007-10-31 22:39

呵呵

#ifdef&nbsp;&nbsp;OS_CPU_GLOBALS<br />#define&nbsp;OS_CPU_EXT<br />#else<br />#define&nbsp;OS_CPU_EXT&nbsp;&nbsp;extern<br />#endif<br /><br />说这个还要从开始用这个说起,比较罗嗦。<br /><br />如我现在有A.C,B.C,A.H三个文件<br />在A.H中有定义:<br />#ifdef&nbsp;&nbsp;OS_CPU_GLOBALS<br />#define&nbsp;OS_CPU_EXT<br />#else<br />#define&nbsp;OS_CPU_EXT&nbsp;&nbsp;extern<br />#endif<br /><br />OS_CPU_EXT&nbsp;int&nbsp;a;<br /><br />现在A.c中使用:<br />#define&nbsp;OS_CPU_GLOBALS<br />#include&nbsp;A.H<br />&nbsp;a=1;<br /><br />如果在B.c中使用:<br />#include&nbsp;A.H<br />则也可以直接使用&nbsp;a=2;<br /><br />这样用起来很方便,每次加上#include&nbsp;A.H后就可以直接使用A.H所有变量<br /><br />如果还有不明,请仔细想想再来聊,呵呵<br />

soso 发表于 2007-11-1 08:15

仔细想想不难

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

ayb_ice 发表于 2007-11-1 08:25

主要用于变量声明

mannerfh 发表于 2007-11-5 08:59

为了

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

wchangtao 发表于 2007-11-5 11:21

多谢db10

多谢多谢,看明白了!多谢各位帮忙!
页: [1]
查看完整版本: 请高手赐教c语言预处理指令的#define的一个问题。