请教一个宏的意思

来源:百度知道 编辑:UC知道 时间:2024/07/02 00:11:43
有如下代码
#define JS_ASSERT(expr) ((void) 0)
...
void * abc(size_t nbytes){
JS_ASSERT(nbytes != 0);
...
}
请问
JS_ASSERT(nbytes != 0);
起什么作用啊?

#define JS_ASSERT(expr) ((void) 0)

就是说任何的表达式JS_ASSERT(...) 都相当于
((void)0);
即什么都不做。

你给出的宏定义应该是release模式下的,通常为了性能,只在debug模式下使ASSERT有效。release就忽略这些检查了。

你找一下还有没有另外一个JS_ASSERT的定义。