一個可以驗證兩個內存塊絕不重疊的斷言

驗證兩個內存塊絕不重疊的斷言, 用在像memcpy函數這樣的場合最適合不過了,  因爲在兩個重疊的內存塊之間拷貝數據, 結果是沒有意義的,

void memcpy(void* pvTo, void* pvFrom, size_t size)
{
    assert(pbTo>=pbFrom+size || pbFrom>=pbTo+size);
    ...
}

上面的斷言很巧妙,只用了一條語句, 它的思想在於:

把兩個內存塊比作兩輛在停車處排成一行等候的轎車, 
如果一輛車的後保險槓在另一輛車的前保險槓之前,  兩輛車就不會重疊

這個斷言我在<<編程精粹>>中看到的, 寫在這裏作一個筆記。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章