驗證兩個內存塊絕不重疊的斷言, 用在像memcpy函數這樣的場合最適合不過了, 因爲在兩個重疊的內存塊之間拷貝數據, 結果是沒有意義的,
void memcpy(void* pvTo, void* pvFrom, size_t size)
{
assert(pbTo>=pbFrom+size || pbFrom>=pbTo+size);
...
}
上面的斷言很巧妙,只用了一條語句, 它的思想在於:
把兩個內存塊比作兩輛在停車處排成一行等候的轎車,
如果一輛車的後保險槓在另一輛車的前保險槓之前, 兩輛車就不會重疊
這個斷言我在<<編程精粹>>中看到的, 寫在這裏作一個筆記。