以下は、memcmp の Microsoft CRT 実装です。
int memcmp(const void* buf1,
const void* buf2,
size_t count)
{
if(!count)
return(0);
while(--count && *(char*)buf1 == *(char*)buf2 ) {
buf1 = (char*)buf1 + 1;
buf2 = (char*)buf2 + 1;
}
return(*((unsigned char*)buf1) - *((unsigned char*)buf2));
}
基本的に、バイトごとの比較を実行します。
私の質問は2つの部分に分かれています:
- これを int by int 比較に変更しない理由はあります
count < sizeof(int)
か? - 1 を実行した場合、潜在的/明らかな問題はありますか?
注: 私は CRT をまったく使用していないので、とにかくこの関数を実装する必要があります。正しく実装する方法についてのアドバイスを探しています。