小编int*_*nds的帖子

实现memcmp

以下是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));
}
Run Code Online (Sandbox Code Playgroud)

它基本上执行逐字节比较.

我的问题分为两部分:

  1. 是否有任何理由不通过int比较将此更改为int count < sizeof(int),然后逐字节比较为剩下的内容做什么?
  2. 如果我做1,是否有任何潜在/明显的问题?

注意:我根本不使用CRT,所以无论如何我必须实现这个功能.我只是在寻找有关如何正确实现它的建议.

c c++ memcmp

5
推荐指数
2
解决办法
6539
查看次数

标签 统计

c ×1

c++ ×1

memcmp ×1