C에서의 비교 문제에 대한 조언 부탁드립니다.
글쓴이: ktd2004 / 작성시간: 일, 2006/03/19 - 4:09오후
다음과 같은 코드가 있습니다.
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로 변환되어서 나타나는 문제갔습니다.
이 문제에 대한 조언 부탁드립니다.
Forums:
a-b의 값을 다른 임시
a-b의 값을 다른 임시 변수에 저장하고 명시적인 형변환을 해준다음 if문에서 비교하는것은 어떨까요?
봄들판에서다
봄들판에서다
방법이야 많습니다.
방법이야 많습니다.
a < sizeof(x) + b
또는
(a - b) < (int)sizeof(x)
캐스팅하면 됩니다
부호성 관련 혼동 입니다.
부호 관련 혼동이 있는것 같습니다.
부호 관련 애매성 입니다.
#include <stdio.h> int
게시물에 물의를 일으켜 죄송합니다.
어제는 머피의 법칙인 하루 같았습니다.
죄송(꾸벅)
-- 덧붙이는 글 --
글은 어떻게 지우나요?
게시물에는 편집과 답글이란 메뉴만이 있고
다른 메뉴는 보이지 않습니다. 아시는 분 계시면 알려주시면 고맙겠습니다.
다시 한번 인사 꾸벅
글타래를 지우는 건
글타래를 지우는 건 "편집" 탭으로 가면 아래쪽에 버튼이 있어서 가능하지만 거기에 달았던 댓글만 지울 수 있는 방법은 없는 듯 합니다. 마음에 걸리시면 중복된 글들 중 한 개만 빼고서 나머지를 짧게 편집해 버리실 수도 있습니다.
불편하다 싶으시면 KLDP drupal migration 현황 글타래에 제보를...:)
----
$PWD `date`
$PWD `date`
댓글 달기