返回信息流在看Larbin的时候,满篇都是这种结构:
#ifdef
....
#endif
和
#ifndef
#endif
请问这样使用有什么好处?为什么程序需要这么多的条件编译,一般为达到什么目的或者效果?
这是一条镜像帖。来源:北邮人论坛 / soft-design / #22875同步于 2007/12/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
为什么一些程序中满篇都是#ifdef #endif?
merrylife
2007/12/9镜像同步24 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
如果它是一两个源文件有这种结构也就算了,关键是整个源程序几乎每个文件都是,搞得我都不知道怎么分析程序的调用关系了,用source insight 查找,找到的是#define XX XXX(),出不来函数体。请问有没有什么办法?
#ifndef
....
#endif
主要用在头文件中,设定一个宏。如果此头文件 即 *.h文件被一个源文件(*.cpp)文件包含了 就 #define 一个宏,然后如果多个*.cpp文件包含了同一个*.h文件,那么头文件中的 #ifndef .... #endif 中的内容就不会被重复包含进来,否则的话,在连接的时候会出现变量重复定义的错误
还有就是定义是否为debug方式,是否为unicode 方式等等,会用到#ifdefine ... #endif , 都是通过判断是否定义了相应的宏而来去定编译或者连接的方式的,宏的内容没有实际的用处,关键是看其是否被定义了
至于#define, 就是宏的基本用法了~~
【 在 skyapple 的大作中提到: 】
: #ifndef
: ....
: #endif
: ...................
我得RE这个