|
장재원 님이 쓰신 글 :
: #include <stidio.h>
#include <stdio.h> // 오타!!
int main() // 빼먹음
: {
: int i=32767;
: printf("%d %d %d\n",i.i+1,i+2);
return 0; // 이것도...
: }
: 라고 예제를 작성해보니..
: 책에서는 결과가 32767 -32768 -32767이라고적혀있는데
: 전 32767 32768 32769라고 뜨내요.
: 왜그런거죠??
: 전 비쥬얼C++6입니다.
예전 도스 시절에는 16bit 컴파일러를 사용했으므로
int가 16bit, 즉 -32,768 <= X <= 32,767 범위이므로 그 책이 맞지만,
비쥬얼C++6를 비롯한 윈도 95등장 이후의 모든 컴파일러는 32bit 컴파일러이므로
int가 32bit, 즉 -2,147,483,648 <= X <= 2,147,483,647 이지요.
제발 도스 시절의 오래된 책과 컴파일러는 내다 버리세요!!!
|