斷言assert是僅在Debug版本起做用的宏,它用於檢查「不該該」發生的狀況。函數
在函數的入口處,使用斷言檢查參數的有效性(合法性)。spa
若是程序在assert處終止了,並非說含有該assert的函數有錯誤,而是調用者出了差錯,assert能夠幫助咱們找到發生錯誤的緣由。ci
void *memcpy(void *pvTo, const void *pvFrom, size_t size)bug
{程序
assert((pvTo != NULL) && (pvFrom != NULL)); // 使用斷言im
byte *pbTo = (byte *) pvTo; // 防止改變pvTo的地址while
byte *pbFrom = (byte *) pvFrom; // 防止改變pvFrom的地址sse
while(size -- > 0 )co
*pbTo ++ = *pbFrom ++ ;ascii
return pvTo;
}