void*指針不可以進行如下操作:
int?a=5;void?*p=&a;
int?b;
b=*p;
所以要訪問p指向的空間中的數據,必須把void*轉化成為別的類型。
為什麽選擇unsigned char作為被指向的類型呢?
首先,必須選擇壹個1個字節的數據類型,否則如果iDataSize不是偶數,最後幾位就沒有辦法安全地復制了。(除不盡)
其次,用unsigned是為了防止char的符號特性。某些機器上:char變量如果是被壹個負的數給賦值了,就會自動加壹個絕對值,變成正的。所以為了防止可移植性錯誤,就最好聲明這個變量是unsigned的(沒有正負符號)。