strcmp 和 wcscmp

发布于 2024-09-11 11:25:25 字数 518 浏览 1 评论 0原文

这是否

if( (FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&
    (wcscmp(FileData.cFileName, L".") != 0) &&
    (wcscmp(FileData.cFileName, L"..") != 0) )

与此相同:

if( (FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&
    wcscmp(FileData.cFileName, L".") &&
    wcscmp(FileData.cFileName, L"..") )

如果您使用 strcmp 而不是 wcscmp?它应该检查名称与“..”和“.”的相等性(严格)。 (目录搜索)。

谢谢!

Is this

if( (FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&
    (wcscmp(FileData.cFileName, L".") != 0) &&
    (wcscmp(FileData.cFileName, L"..") != 0) )

the same as this:

if( (FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&
    wcscmp(FileData.cFileName, L".") &&
    wcscmp(FileData.cFileName, L"..") )

And also if you use strcmp instead of wcscmp? It should check equality (strict) of the name with ".." and "." (directory search).

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花开雨落又逢春i 2024-09-18 11:25:25

如果我没记错的话,这两个例子都做了同样的事情。

If I'm not mistaken, both examples do the same thing.

梦中的蝴蝶 2024-09-18 11:25:25

在 C 语言中,“true”被定义为“非零”。 “假”被定义为“零”。所以是的,它们是相同的。

不过,请务必小心返回非原始类型的方法;在 C++ 中,运算符重载可能会使“!= 0”实际上不与零进行比较:-P。不过,这里不是问题。

另外,如果您不放入括号,请确保您了解运算顺序。

In C, "true" is defined as "not zero". "false" is defined as "zero". So yes, they're the same.

Do be careful about methods that return non-primitive types, though; in C++, operator overloading could make "!= 0" not actually compare something with zero :-P. Not a problem here, though.

Also, if you don't put in the parentheses, make sure you understand the order of operations.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文