数组与memcpy比较逐元素比较

时间:2013-05-14 06:47:01

标签: c performance loops memcmp

哪种实施更好,为什么?

使用for循环或memcmp()实现的Element by Element比较

int a[] = {1,2,3};
int b[] = {1,3,5};

memcmp(a, b, sizeof(int)*n)

OR

 for (i = 0; i < n ; i++)
    {
       if (a[i] == b[i])
        {
            /* some Code */
        }
    }

1 个答案:

答案 0 :(得分:0)

memcmp更快:编译器通常对cpu使用特殊指令进行大量优化,循环展开,以及其他“高级”技术,简单循环生成的代码(通常)不会使用。但是,memcmp只能比较字节值;在整数数组的情况下它很好,但它(可能)对于一个对象数组不起作用。