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では、「真」は「ゼロではない」と定義されています。「false」は「ゼロ」として定義されます。そうです、それらは同じです。

ただし、非プリミティブ型を返すメソッドには注意してください。C ++では、演算子のオーバーロードにより、「!=0」が実際にはゼロと比較されない場合があります:-P。ただし、ここでは問題ありません。

また、括弧を付けない場合は、操作の順序を理解してください。

于 2010-07-25T15:30:39.420 に答える