컴파일러 경고(수준 4) C4389
'equality-operator': 부호 있는/서명되지 않은 불일치
==
!=
관련된 signed
작업 및 unsigned
변수입니다. 이로 인해 데이터가 손실될 수 있습니다.
설명
이 경고를 해결하는 한 가지 방법은 비교 및 unsigned
형식을 비교할 signed
때 두 형식 중 하나를 캐스팅하는 것입니다.
예시
다음 샘플에서는 C4389를 생성합니다.
// C4389.cpp
// compile with: cl /EHsc /W4 C4389.cpp
int main()
{
int a = 9;
unsigned int b = 10;
int result = 0;
if (a == b) // C4389
result = 1;
else
result = 2;
if (unsigned(a) == b) // OK
result = 3;
else
result = 4;
return result;
}