关于断言(assert) 的问题
1) assert 对Debug 版起作用, 对 Release 版不起作用.
可不可以这样理解,当assert在Debug版不出问题时,在Release 版也不出问题.
2) 以下二代段码有什么不同,请解释一下.(是不是在Release 版,有 代码二的代码量 比 代码一的代码量 大的问题)
代码一:
void *memcpy(void *pvTo, const void *pvFrom)
{
assert((pvTo != NULL) && (pvFrom != NULL)); //assert的参数为假中止, 为真继续执行
byte *pbTo = (byte *)pvTo;
.......
return pvTo;
}
代码二:
void *memcpy(void *pvTo, const void *pvFrom)
{
if ((pvTo != NULL) && (pvFrom != NULL))
{
byte *pbTo = (byte *)pvTo;
.......
return pvTo;
}
else
{
return NULL;
}
}