自定义模板memcmp与C memcmp

时间:2012-05-30 17:22:09

标签: c++

template <typename T>
int custom_memcmp(const T* a, const T* b, std::size_t n);

这会比C的memcmp快吗?

如果sizeof(T)!= 1:它将执行更少的迭代,并且可以将这些值作为它们的实际类型进行比较。例如,除了直接比较两个'long long'比比较两个8字节缓冲区更快之外我会这么做。

2 个答案:

答案 0 :(得分:6)

memcmp通常是编译器内在的,因此将被优化为尽可能高效(将被矢量化,内联等)。

所以你几乎肯定不会打败它。但是,当然,如果你想确切知道,那么只需简介!

答案 1 :(得分:1)

不,它不会更快。 memcmp将尽可能有效地比较适当大小的原始内存。只有一个简单的memcmp实现才能逐字节地完成。