判断宏被定义为数字还是空的方法

来源:互联网 发布:超市商品档案数据 编辑:程序博客网 时间:2024/06/03 05:06

今天在阅读Apache Portatble Runtime的源代码,忽然发现一段简短的宏定义,才让我对这个问题产生了思考:如何判断一个宏被定义为了空,还是被定义成一个数字?

APR的判定代码如下:


注意上面代码中的第二句,当定义APR_POOL_DEBUG为空时,该语句等价于 - -1 == 1,当定义APR_POOL_DEBUG为任何数字时,该判断语句左边等于-1,不满足条件。很smart的一种做法,阅读开源代码始终是程序员进阶的最佳途径之一,学习前人经验的同时,还可以拓展自己的思维。

原创粉丝点击