'operator': 文字列定数のアドレスで論理演算が行われました
文字列リテラルのアドレスで演算子が使用されると、不要なコードが生成されます。
次の例では C4130 が生成されます。
// C4130.cpp
// compile with: /W4
int main()
{
char *pc;
pc = "Hello";
if (pc == "Hello") // C4130
{
}
}
if
ステートメントは、ポインター pc
に格納されている値と、コード内に出現するたびに個別に割り当てられる文字列 "Hello" のアドレスを比較しています。 if
ステートメントは、pc
が指す文字列と、文字列 "Hello" については比較しません。
文字列を比較するには、 strcmp
関数を使用します。