컴파일러 경고(수준 3) C4018
'token': signed/unsigned mismatch
토큰 연산자를 사용하여 비교 signed
하고 unsigned
숫자를 사용하려면 컴파일러가 값을 .로 변환 signed
해야 unsigned
했습니다.
설명
이 경고를 해결하는 한 가지 방법은 비교 및 unsigned
형식을 비교할 signed
때 두 형식 중 하나를 캐스팅하는 것입니다.
예시
이 샘플에서는 C4018을 생성하고 이를 해결하는 방법을 보여 줍니다.
// C4018.cpp
// compile with: cl /EHsc /W4 C4018.cpp
int main() {
unsigned int uc = 0;
int c = 0;
unsigned int c2 = c; // implicit conversion
if (uc < c) // C4018
uc = 0;
if (uc < unsigned(c)) // OK
uc = 0;
if (uc < c2) // Also OK
uc = 0;
}