荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: lvyou (亚热带少年), 信区: Linux
标  题: Re: 好奇怪的#define语句阿!
发信站: 荔园晨风BBS站 (Sat Aug 31 15:42:28 2002), 转信

  在开发过程中我们可以假设只要程序运行正确,某一条件肯定成立。如不成立 ,

那么我们可以断言程序肯定出错。在这种情况下我们可以利用ASSERT来设定断言。

ASSERT宏的参数是一个逻辑表达式,在程序运行过程中,若该逻辑表达式为真,则

不会发生任何动作,若此表达式为假,系统将弹出一个对话框警告你,并停止程序

的执行。同时要求你作出选择:Abort,Ignore,Retry。若你选择Abort,系统将

停止程序的执行;若你选择Ignore 系统将忽略该错误,并继续执行程序;若你选择

Retry ,系统将重新计算该表达式,并激活调试器。同TRACE宏一样,ASSERT宏只

DEBUG版本中起作用,在RELEASE版本中ASSERT宏将被忽略。

   (void)0就表示类型为void,值为0的常量。


【 在 zhimajie@bbs.pku.edu.cn (芝麻街) 的大作中提到: 】
: 大家看看 源代码是这样的
: #define assert(x) ((void)0)
: 能否解释一下这是什么意思么?
: ((void)0)是干什么的 为什么
: 前边assert(x)带有参数x 而后边的
: ((void)0)不带有参数呢?


--
   ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
   ┃         是什么缘份,让我们相遇的一起?生命的转折就是这么奇妙。       ┃
   ┃   惜    我们又解逅在不可预知的现在,悄然相遇是多么欢喜。        缘   ┃
   ┃         请珍惜我们彼此拥有的此刻,让我好好倾听你的细语……           ┃
   ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.55.60]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店