編譯器警告 (層級 4) C4130
'operator': 以字串常數的位址進行邏輯運算
搭配使用運算子與字串常值的位址會產生非預期的程式碼。
下列範例會產生 C4130:
// C4130.cpp
// compile with: /W4
int main()
{
char *pc;
pc = "Hello";
if (pc == "Hello") // C4130
{
}
}
語句 if
會將儲存在指標 pc
中的值與字串 「Hello」 的地址進行比較,此位址會在每次程式代碼中發生字串時個別配置。 if
語句不會比較 所pc
指向的字串與字串 「Hello」。
若要比較字串,請使用 strcmp
函式。