unsigned short 유효 범위는?
글쓴이: hermian / 작성시간: 금, 2005/02/04 - 4:28오후
unsigned short는 0에서 시작하는 것으로 알고 있습니다.
그런데 다음과 같은 코드를 컴파일 하니 gcc에서 warning을 발생하는 군요.
#include <stdio.h> #include <assert.h> #define ENSURE(test_) assert(test_) int main(void) { unsigned short int w; w=99; ENSURE(w >= 0 && w <= 99); return 0; } /* gcc -Wall -g -o t t.c */ /* * Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs * gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-110) * */
컴파일 결과 입니다. (실행파일은 정상 작동합니다. :( )
$gcc -Wall -g -o t t.c t.c: In function `main': t.c:13: warning: comparison is always true due to limited range of data type
Forums:
w는 unsigned이니, 0 이상인지 아닌지 test하는 것이 불필요하
w는 unsigned이니, 0 이상인지 아닌지 test하는 것이 불필요하다는 경고입니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기