컴파일러 경고(수준 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
함수를 사용합니다.