Programming 版 (精华区)

发信人: valley (天音), 信区: Programming
标  题: Re: #ifdef什么宏?
发信站: 哈工大紫丁香 (2003年02月27日18:22:11 星期四), 站内信件

#ifdef 主要用于调试程序和移殖程序之用。
1. 调试应用
假设我们有一个调试点,程序运行到此时进行一些计算,
显示一些数据。程序完成后,此段代码不应执行,出于空
间效率的考虑,此段代码甚至不应该被编译。于是我们定
义一个宏

#define DEBUGGING

当 #ifdef 指令检测到 DEBUGGING 被定义时,编译器编译
调试代码,如果没有检测到,则忽略调试代码。

好处:只用一个 DEBUGGING 就可以在调试和正常两种状态
下转换而不用把代码删来删去。

2. 移殖程序考虑
有些软件需要考虑不同的应用环境,如windows95,nt,xp等,
对于不同的环境,有些代码是需要修改的,但由于空间效率
的原因,不应该把各种环境的代码都编译到最终文件中去。
于是用 #ifdef 指令通知在什么情况下编译哪些代码。
比如一个驱动程序需要在 win98 上运行时
#define ONWIN98
...
#ifdef ONWIN98
#...
#...
#else
#...
#...
#end
这样编译器只编译 98 下的代码


【 在 flythunder (似是故人来) 的大作中提到: 】
: 谁解释解释


--
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                                                    ┃
┃ TARGET LOCKED! MISSILE LAUNCHED! TARGET DESTROYED! ┃
┃                                                    ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛
对不起,您所呼叫的爱情已关机或不在服务区内,请稍候再播。

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.247.56]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:7.581毫秒