1

这是

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?它应该用“..”和“.”检查名称的相等性(严格)。(目录搜索)。

谢谢!

4

2 回答 2

4

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

于 2010-07-25T15:11:41.850 回答
3

在 C 中,“真”被定义为“非零”。“假”被定义为“零”。所以是的,它们是一样的。

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

此外,如果您不放入括号,请确保您了解操作顺序。

于 2010-07-25T15:30:39.420 回答