40得票3回答
为什么memcmp比for循环检查快那么多?

为什么memcmp(a, b, size)要比以下代码快得多:for(i = 0; i < nelements; i++) { if a[i] != b[i] return 0; } return 1; memcmp是CPU指令还是其他什么东西?它一定很深奥,因为我使用memcm...

24得票6回答
memcmp与多个等式比较的区别

前提条件:考虑这样一个类或结构体T,对于类型为T的两个对象a和b memcmp(&a, &b, sizeof(T)) == 0 产生相同的结果。 a.member1 == b.member1 && a.member2 == b.member2 &...

15得票2回答
我可以翻译成中文:我可以将空指针传递给memcmp吗?

特别地,下面这个是定义良好的吗,还是表现出未定义的行为?memcmp(0, 0, 0); 这在 C 和 C++ 之间有区别吗?最好请提供标准文件的引用。

15得票6回答
如何在C++中比较通用结构体?

我希望以通用的方式比较结构体,并且我已经做了类似这样的事情(如果需要,可以询问更多细节,但我不能分享实际源代码):template<typename Data> bool structCmp(Data data1, Data data2) { void* dataStart1 ...

11得票5回答
C结构体的内部一致性

如果我有两个初始化为具有相同成员的C结构,我能否保证:memcmp(&struct1, &struct2, sizeof(my_struct)) 永远会返回零吗?

10得票6回答
Java中的memcmp()等效函数是什么?

如果我有两个byte[]数组,是否有内置函数可以像C语言的memcmp()一样进行比较?

9得票2回答
为pod重载运算符==

我正在处理一些具有高级接口的低级代码,并感觉需要比较运算符来进行普通数据类型(如FILETIME结构)的单元测试,但由于C ++甚至没有提供成员逐个比较,因此我编写了以下代码: template <typename Type> std::enable_if_t<std::i...

9得票1回答
memcmp(ptr1, ptr2, 0)的返回值是什么?

在阅读如何在不使用计数器的情况下检查数组的元素是否全部相同?时,@Skizz使用了巧妙的解决方案: memcmp (&string [0], &string [1], sizeof string [0] * (N - 1)) 所以如果N恰好为1,我们就得到: memcm...

9得票3回答
C++ is_trivially_copyable检查

如何检查C++类型是否是可平凡复制的?我有一个类,它使用指定的模板类型T和memcpy、memcmp函数,我想对不安全使用memcpy复制的类型发出assert。有没有办法做到这一点(在现有标准下)?

9得票1回答
std::memcmp函数能读取第一个不同字节之后的任意字节吗?

考虑一下: constexpr char s1[] = "a"; constexpr char s2[] = "abc"; std::memcmp(s1, s2, 3); 如果memcmp在遇到第一个不同之处停止,它将不会读取s1的第二个字节(空字符终止符)。然而,我没有在C标准中找到任...