自定义模板 memcmp 与 C memcmp

Custom template memcmp vs C memcmp

本文关键字:memcmp 自定义      更新时间:2023-10-16
template <typename T>
int custom_memcmp(const T* a, const T* b, std::size_t n);

这会比C的memcmp更快吗?

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

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

所以你几乎肯定不会打败它。 但是,当然,如果您想确定,那么只需个人资料!

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