查看完整版本: 一个宏的妙用

Ice.man 2006-11-10 13:15

一个宏的妙用

#define __Assert(c,p) (void) ( (c) || (p,0))

括号 最后没分号 这些用法大家都知道
那void 和0的用处大家知道么

对牛弹吉他 2006-11-11 09:51

Re:一个宏的妙用

传说中的逗号操作符……
不管前面做多少步,只取最后一步……

再利用c语言表达式判断的即时死亡机制。就可以作为if, else用了……
如果c表达式为真,返回true,结束。
如果c表达式为假,再执行p,不管p怎么返回,返回0。

再用(void)做强转?
哎,实在没有用过……不知道这个宏的使用环境有点困难……

对牛弹吉他 2006-11-11 10:03

Re:一个宏的妙用

估计((void)0)是为了不让任何其他函数以这个assert的结果作为赋值输入吧……

Ice.man 2006-11-13 10:53

Re:一个宏的妙用

ls分析的精彩
用于 __Assert(condition,USER::panic());等断言
转换成void就是为了防止表达式的返回值被误用

seeking... 2006-11-14 20:10

Re:一个宏的妙用

好精妙的一个DEFINE……长见识中……

vicie 2006-11-15 23:47

Re:Re:一个宏的妙用

[quote]
[b]Ice.man: Re:一个宏的妙用[/b]
ls分析的精彩

用于 __Assert(condition,USER::panic());等断言

转换成void就是为了防止表达式的返回值被误用<!-- CETagParser ~/quote
</td></tr></table></td></tr></table><br>

呵呵,我就不信你以前没用过,DEBUGMSG\RETAILMSG总记得吧,不要忘本哦
#define DEBUGMSG(cond,printf_exp)   \
   ((void)((cond)?(NKDbgPrintfW printf_exp),1:0))

[img]http://bbs.tongji.net/images/smiles/wink_smile.gif[/img] enjoy it

易尘 2006-11-16 09:06

Re:一个宏的妙用

至于去研究这个吗?
不如多关注些有意思的东西

wolfhead87 2006-11-17 23:04

Re:一个宏的妙用

看不懂……

jackscott 2006-12-8 21:35

Re:一个宏的妙用

That's ture!It's hard to understand!

召唤科多 2006-12-10 22:36

Re:一个宏的妙用

乐趣就在于挖掘技术
有的时候不能太功利~

易尘 2006-12-11 17:11

Re:一个宏的妙用

想研究宏和模板怎么用,去看LOKI库的SOURCE CODE,
不过我不认为有太大意义,过度依赖语言特性真的是好事么?

对牛弹吉她 2006-12-14 10:56

Re:Re:一个宏的妙用

[quote]
[b]易尘: Re:一个宏的妙用[/b]
想研究宏和模板怎么用,去看LOKI库的SOURCE CODE,

不过我不认为有太大意义,过度依赖语言特性真的是好事么?<!-- CETagParser ~/quote
</td></tr></table></td></tr></table><br>

我会过度利用语言特性……

OwnWaterloo 2008-10-8 05:04

[quote]原帖由 [i]易尘[/i] 于 2006-12-11 17:11 发表 [url=http://bbs.tongji.net/redirect.php?goto=findpost&pid=6609383&ptid=424922][img]http://bbs.tongji.net/images/common/back.gif[/img][/url]
想研究宏和模板怎么用,去看LOKI库的SOURCE CODE,
不过我不认为有太大意义,过度依赖语言特性真的是好事么? [/quote]

计算机是为人类服务的, 过度依赖计算机的性能, 过度开发研究计算机的性能真的是好事么?

你可以不研究, 也不需要人人都研究。
有人研究了,然后做出Loki给你用就是了。  没有发开的水平, 使用的水平应该还是够的吧?


但是你宣扬这种拿来主义,快餐文化, 就是你的不对了。

小推 2008-10-8 10:37

鹏哥最近挖贴挖的很深吖。。。

我也长见识了。。。一直以来都没注意过逗号操作符~~原来()?:还可以这样写~~

OwnWaterloo 2008-10-8 14:35

不是我的错

不全是我的错……

罪魁祸首在这里下面 ^_^ b
[url]http://bbs.tongji.net/thread-598011-1-1.html[/url]

hawk_with_wind 2008-10-8 19:44

这个逗号。。这个0 。。还有这个void..

真长见识了。。
页: [1]
查看完整版本: 一个宏的妙用