Common knowledge
C++ warning C4018 해결
vencedor
2016. 7. 26. 10:44
warning C4018: '>=' : signed 또는 unsigned가 일치하지 않습니다.
MSDN에서 설명하기를
대략 부호 있는 숫자와 부호 없는 숫자를 비교하려면 부호 있는 값을 부호 없는 값으로 변환해야 한다고한다.
즉, 두형식 중 하나를 캐스팅해서 해결이 가능하다고 한다.
1. warning C4018 발생코드
sInt adjust = newVA - oldVA;if(adjust < 0)
{newVA = oldVA;
if(newSize >= -adjust)
newSize += adjust;
}
2. 수정코드
int newSize2 = 0; //added
sInt adjust = newVA - oldVA;if(adjust < 0)
{newVA = oldVA;
newSize2 = newSize; //added
if(newSize2 >= -adjust) //modified
newSize += adjust;
}