gpt4 book ai didi

c - 空字符串的 strcmp

转载 作者:太空狗 更新时间:2023-10-29 16:24:10 26 4
gpt4 key购买 nike

我正在审查一些代码,我看到有人做了一个

if (0 == strcmp(foo,""))

我很好奇,因为我认为做一个会更快

if (foo[0] == '\0')

这是正确的还是 strcmp 优化得足以使它们相同。

(我知道即使有一些差异也很小,但我认为您使用我的方法至少可以节省一些指令。)

最佳答案

你是对的:因为调用 strcmp() 将堆栈管理和内存跳转到实际的 strcmp 指令,你只需检查你的第一个字节就可以获得一些指令字符串。

出于好奇,您可以在此处查看 strcmp() 代码:http://sourceware.org/git/?p=glibc.git;a=blob;f=string/strcmp.c;h=bd53c05c6e21130b091bd75c3fc93872dd71fe4b;hb=HEAD

(我以为代码会充满#ifdef和晦涩难懂的__GNUSOMETHING,但实际上很简单!)

关于c - 空字符串的 strcmp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com