【发布时间】:2011-12-23 15:20:32
【问题描述】:
好的,所以我有以下功能:
int functionX()
{
return strcmp(array1,array2)==0;
}
为什么会有人这样做? ==0 表示此函数将始终返回 FALSE。这是真的还是我错过了一些奇特的 C 语法引物?
【问题讨论】:
-
有什么问题?如果 strcmp 返回 0,则表示字符串相等。否则,一个大于另一个,取决于结果的符号(负或正结果)。
-
您返回评估结果“strcmp(array1,array2)==0”。如果 strcmp(array1, array2) 确实等于 0,那么您将返回 true,否则返回 false。它并不比“return 1==1;”更具异国情调,除了这个例子显然总是返回 true。