1
나는 상황 (UNIX) 다음과 같은 한 두 개의 긴 정수 (매우 이상)을 비교 : C :
x is a long and has value 300
y is a long and has value 50000
if (x <= y) printf("Correct.");
if (x > y) printf("Ouch.");
지금 난 항상 "아야"를 얻는다. 즉, 프로그램에서 300이 50000보다 큽니다. 내가
if ((int)x <=(int) y) printf("Correct.");
if ((int)x > (int)y) printf("Ouch.");
을 수행 할 때 그것은 단지 다시 작동
그래서 비교 연산자 어떤 문제가 있습니까?
x와 y가 어떻게 선언되고 지정 되나요? – freespace
또한 printf ("% ld % ld", x, y) 값을 볼 수 있도록 printf –
"long"은 2 바이트 값이므로 음수가 넘치고 음수가 나오기 때문에 sizeof (long)은 플랫폼에 따라 다르기 때문에 예상 한 값일 수는 없습니다. 특히 당신이 임베디드 플랫폼을 목표로 삼고 있다면. –