다음과 같은 코드가 있습니다.
unsigned long int a = 3, b = 6;
if( ( a-b) < sizeof(x)) {
printf("여기로 진입해야함.");
}
위와 같은 코드에서 printf 문으로 진입하지 않습니다.
처음에는 a,b 변수가 "unsigned long int"타입이어서 그런 문제가 생기나 하고,
"unsigned int", "long int", "int" 모두 다 바꾸어봐도 똑 같더군요.
최종적으로 문제는 sizeof 였습니다.
제 생각으로는 sizeof의 반환값이 unsigned 형이어서
(a-b)의 결과값도 unsinged로 변환되어서 나타나는 문제갔습니다.