範例
第一個 if 陳述式可能會檢查引數是否相同,但只有在引數不相同時,它才會順利完成。
void
foo(
char
*string1,
char
*string2)
{
if
( strcmp(string1, string2) ) {
//這些字串不同
}
if
( !strcmp(string1, string2) ) {
//這些字串相同
}
}
解決方案
為了避免這種誤解,編碼準則可以要求將 if 陳述式撰寫如下。
void
foo(
char
*string1,
char
*string2)
{
if
(strcmp(string1, string2) != 0) {
//這些字串不同
}
if
( strcmp(string1, string2) == 0) {
//這些字串相同
}
}