cost 127 ms
C++17 std::byte 使用 GCC 中的标准算法生成优化程度较低的代码 - C++17 std::byte produces less optimized code with the standard algorithms in GCC

我真的很喜欢std::byte作为一种独特的类型,它实现了 C++ 语言定义中指定的字节概念。 我不喜欢的是现代 C++ 编译器将使用标准算法生成优化程度较低的代码。 在这里,我正在玩一个 function,它检查 header 中的前 4 个字节,您可以在Godbolt上关注我的代码片段 这将在 ...

结构上的 memcmp 与 c lang 中的 integer 变量的比较如何。 结果不如预期 - How the memcmp on structure with integer variable in c lang compares. Result is not as expected

我有一个 integer 的结构,我正在使用 memcmp 比较结构,我不想使用其他方法。 memcmpa 应该返回 -1,但它返回 1。为什么? memcmp one.d = 1022 和 two.d = 1023 将返回正确的值。 为什么会这样? ...

是否还有其他 C 标准库函数(如 memcmp)具有时序侧信道风险? - Are there other C standard library functions like memcmp that have timing side-channel risk?

我发现如果两个字符串中的第一个字节不同, memcmp()会更早返回 false,并且我认为它存在时序攻击风险。 但是,当我试图找出是否有其他功能存在诸如memcmp之类的侧通道风险时,我找不到任何信息。 ...

比较两个双打,看看它们是否相同 NaN - Compare two doubles to see if they are the same NaN

我有两个双精度x和y已知y是一个特定的 NaN 值,我想看看它们是否按位相同。 也就是说,我想确定x是否与y完全相同的 NaN 值。 NaN 无法与==运算符进行有用的比较,因为 NaN 永远不会等于任何其他值(甚至它们本身也不等于)。 有没有比以下“按位相等”方法更好的方法(这种方法合法吗?) ...

memcmp 究竟返回了什么? - What exactly does memcmp return?

我正在尝试创建自己的memcmp文件,但是每当我将其与原始memcmp function 进行比较时,相等的字符串返回零,但如果字符串不相等,则返回值不同。 output 与真正的memcmp function 相比是 ./a.out "ajinkya" "akinkya" MEMCMP:-2 ...

2021-03-01 11:58:26   3   112    c / memcmp  
用 memcmp() 比较整数 - Comparing integers with memcmp()

我正在制作一个 function 来获取每个大小为 SIZ 的 NMEMB 成员数组的最大值,并将每个成员与memcmp()进行比较。 问题是在比较有符号整数时,结果是不正确的,但同时是正确的。 这是一个例子:void * getmax(const void *data, size_t nmemb, ...

2021-02-27 16:08:42   3   130    c / memcmp  
8 个后续字节的测试不会转换为单个比较指令 - Test of 8 subsequent bytes isn't translated into a single compare instruction

受这个问题的启发,我比较了三个不同的函数来检查参数指向的 8 个字节是否为零(请注意,在原始问题中,字符与'0'进行比较,而不是0 ): 虽然我希望启用优化后的汇编结果相同,但只有memcmp版本被翻译成 x64 上的单个cmp指令。 f1和f2都被翻译成缠绕或未缠绕的循环。 此外,这适用于所有 ...

如何防止 Atmel Studio gcc 6.3.1 将 4 字节 memcmp() 优化为 4 字节直接比较? - How to prevent Atmel Studio gcc 6.3.1 from optimizing 4-byte memcmp() to a 4-byte direct comparison?

使用提供的 gcc 6.3.1 运行 Atmel Studio,为 Atmel/Microchip SAMV70 (ARM Cortex-M7) 芯片构建固件。 我有使用memcmp()将 4 字节输入数组与 4 字节本地数组进行比较的代码。 当使用-O0编译以禁用优化时,它工作正常。 当使用-Os ...

如何比较 C++ 中的泛型结构? - How to compare generic structs in C++?

我想以通用的方式比较结构,我已经做了这样的事情(我不能分享实际的来源,所以如果有必要,请询问更多细节): 这主要按预期工作,但有时即使两个结构实例具有相同的成员(我已经使用 eclipse 调试器检查过),它也会返回 false。 经过一番搜索,我发现memcmp可能会由于填充使用的结构而失败。 ...

Pod 的重载运算符 == - overloading operator == for pods

我正在处理一些具有高级接口的低级代码,并且觉得需要比较运算符来对普通旧数据类型(如 FILETIME 结构)进行单元测试,但由于 C++ 甚至不提供成员比较,所以我写了这个: 所以我的问题是,这是一个好方法还是有一些隐藏的恶魔会在开发周期的后期给我带来麻烦,但现在它有点工作。 ...

在q == p的情况下,为什么memcmp实现没有捷径memcmp(q,p,n)? - Why do memcmp implementation not shortcut memcmp(q, p, n) for the case where q==p?

如果我将第一个和第二个参数的相等指针传递给memcmp ,我怀疑它可能只返回0而没有检查元素-因为如果传递相同的指针,则元素必须为零。 在我看来,检查指针是否相等并尽早退出是一种很好的优化方法。 我检查了glibc和Free BSD LibC的实现,但似乎都没有进行此优化。 因此, ...

在哪里可以找到glibc源代码项目的memcmp.c中出现的宏__insn_dword_align的定义? - Where can I find the definition of the macro __insn_dword_align that occurs in memcmp.c of the glibc source code project?

glibc中函数memcmp的实现使用宏DBLALIGN(例如DBLALIG(a3,a0,srcli))来比较两个不带整数的int整数。 DBLALIGN的内容如下。 但是,在glibc源代码中找不到__insn_dword_align的定义。 我在哪里可以找到它。 谢谢! ...

什么,确切地说,memcmp应该返回? - What, exactly, is memcmp supposed to return?

我想知道memcmp函数必须返回什么。 我一直在互联网上搜索,通常, memcmp定义说明如下: memcmp()函数返回一个大于,等于或小于零的整数,因为s1指向的对象大于,等于或小于s2指向的对象。 这是从来没有明确地说, 究竟是什么,则返回:这是两个字节的值之间的差 ...

C ++:调用运算符和调用其实现之间有区别 - C++: Is there a difference between calling an operator and calling it's implementation

我有一个类,其中在特定成员上用memcmp()重载了==运算符。 由于代码中的复制不正确(调用memcpy大小超出了应有的大小),在调用==运算符时出现了段错误。 我了解UB是一个神秘的事物,而且显然是不确定的,但我仍然发现有些东西吸引了我。 在调试时,我将==调用替换为其实现(即 ...

我可以使用memcmp来检查struct的非零成员吗? - Can I use memcmp to check struct for non-zero members?

我正在使用具有许多成员的大型结构,并且我想采用一种简单的方法来快速查看是否有任何成员不为零。 我知道memcmp()不应用于比较两个相等的结构(如此处所述: 如何在C中比较相等的结构? ),但我希望通过将一个结构与一个已经存在的内存块进行比较来实现设置为0,这可能会起作用。 例如,假设我 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM