sas*_*alm 3 c++ mfc assert
有时候我会写代码
if (ptr) ASSERT(ptr->member);
代替
ASSERT(!ptr || ptr->member);
因为它更直接的IMO.冗余比较是否会保留在发布版本中?
Fré*_*idi 6
我会说这取决于你的编译器.
在发布模式下,ASSERT宏将不会计算ptr->member并将解析为编译器将优化的普通表达式,但if语句和关联的比较将保持不变.
ASSERT
ptr->member
if
但是,如果编译器足够智能以确定条件没有任何副作用,则可能会优化整个if语句.编译到汇编(使用/ FA选项)会给你一个明确的答案.
归档时间:
14 年,1 月 前
查看次数:
585 次
最近记录: