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

这会比 C 的 memcmp 快吗?

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

4

2 回答 2

6

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

所以你几乎肯定不会打败它。但是,当然,如果您想确定,那么只需配置文件!

于 2012-05-30T17:24:31.753 回答
1

不,不会更快。memcmp 将尽可能有效地比较适当大小的原始内存。只有 memcmp 的幼稚实现会逐字节进行。

于 2012-05-30T17:24:57.523 回答