assert 是调试的时候的断言。不影响逻辑,也不应该影响逻辑。
而 return false 才是程序的逻辑,程序跑的时候的流程。
比如:
ATLASSERT(ppv);
if (!ppv)
{
return E_POINTER;
}
*ppv = NULL;
而 return false 才是程序的逻辑,程序跑的时候的流程。
比如:
ATLASSERT(ppv);
if (!ppv)
{
return E_POINTER;
}
*ppv = NULL;
if (!ppv)<br abp="477">
{<br abp="478">
return E_POINTER;<br abp="479">
}<br abp="480">
*ppv = NULL;
你一般同时使用assert和return false吗 ? 感觉有点烦。
所谓断言,就是逻辑上,程序运行到断言位置的时候,某个值肯定应该是这样的,如果不是这样,那么就肯定运行失败
比如,你定义了一个CWnd对象,并且调用了Create方法,那么其后,你就都可以肯定其m_hWnd值不会是NULL。这就是断言