컴파일러 경고(수준 4, 해제) C4388
'token': signed/unsigned mismatch
토큰 연산자를 사용하여 값을 더 큰 형식으로 변환하려면 컴파일러가 signed
a와 더 큰 unsigned
unsigned
숫자를 비교 signed
해야 했습니다.
설명
이 경고를 해결하는 한 가지 방법은 비교 signed
시 두 형식 중 하나를 캐스팅하고 더 큰 unsigned
형식을 캐스팅하는 것입니다.
기본적으로 이 경고는 해제되어 있습니다. /Wall을 사용하거나 /w44388
명령줄에서 수준 4 경고로 사용하도록 설정할 수 있습니다. 또는 원본 파일에서 사용합니다 #pragma warning(default:4388)
. 자세한 내용은 기본적으로 꺼져 있는 컴파일러 경고를 참조하세요.
예시
이 샘플에서는 C4388을 생성하고 이를 해결하는 방법을 보여 줍니다.
// C4388.cpp
// compile with: cl /EHsc /W4 C4388.cpp
#pragma warning(default: 4388)
int main() {
unsigned long long uc = 0;
int c = 0;
unsigned long long c2 = c; // implicit conversion
if (uc < c) // C4388
uc = 0;
if (uc < (unsigned long long)(c)) // OK
uc = 0;
if (uc < c2) // Also OK
uc = 0;
}