template <typename T>
int custom_memcmp(const T* a, const T* b, std::size_t n);
这会比C的memcmp快吗?
如果sizeof(T)!= 1:它将执行更少的迭代,并且可以将这些值作为它们的实际类型进行比较。例如,除了直接比较两个'long long'比比较两个8字节缓冲区更快之外我会这么做。
答案 0 :(得分:6)
memcmp
通常是编译器内在的,因此将被优化为尽可能高效(将被矢量化,内联等)。
所以你几乎肯定不会打败它。但是,当然,如果你想确切知道,那么只需简介!
答案 1 :(得分:1)
不,它不会更快。 memcmp将尽可能有效地比较适当大小的原始内存。只有一个简单的memcmp实现才能逐字节地完成。