代码之家  ›  专栏  ›  技术社区  ›  rubenvb

strcmp和wcscmp

  •  1
  • rubenvb  · 技术社区  · 14 年前

    这是

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

    谢谢!

    2 回复  |  直到 14 年前
        1
  •  4
  •   LukeN    14 年前

    如果我没有错的话,两个例子都是一样的。

        2
  •  3
  •   Borealid    14 年前

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

    不过,要注意返回非原始类型的方法;在C++中,运算符重载可以“!”=0“实际上不是将某个值与零进行比较的。—P。不过这里没有问题。

    另外,如果您不在括号中,请确保理解操作顺序。