c·c++/c 프로그래밍

long long int

바로이순간 2011. 12. 28. 21:35

#include <stdio.h>

int main() {

    long long int n1 = +2147483647LL;  //끝에 LL을 추가하여 이 상수가 long long형 임을 명시 

    long long int n2 = -2147483648LL;  //끝에 LL을 추가하여 이 상수가 long long형 임을 명시 

 

    printf("%d \n", sizeof(long long int));

 

    printf("전 : %lld \n", n1);

    n1 = n1 + 100;

    printf("후 : %lld \n", n1);

  

    printf("전 : %lld \n", n2);

    n2 = n2 - 100;

    printf("후 : %lld \n", n2);

 

    return 0;

}


-----------------------------------------------------------------------------------------------

 

책으로 C언어를 공부하고 있는 중에 문제가 발생했어요.

[소 스]

---------------------------------------------------

long long int n1 = +2147483647;
long long int n2 = -2147483648;

printf("%d \n", sizeof(long long int));


printf("전 : %lld \n", n1);
n1 = n1 + 100;
printf("후 : %lld \n", n1);

printf("전 : %lld \n", n2);
n2 = n2 - 100;
printf("후 : %lld \n", n2);

---------------------------------------------------

책 내용대로라면 위의 소스를 실행시켰을 경우 실행결과가

[결 과]

----------------

8

전 : 2147483647;

후 : 2147483747;
전 : -2147483648;

후 : -2147483748;

----------------

라고 나와야 하는데


8

전 : 2147483647

후 : 2147483747
전 : 2147483648

후 : 2147483548

[Visual Studio 2008 결과]


8

전 : 2147483647

후 : -2147483549
전 : -2147483648

후 : 2147483548

[Dev-C++ 결과] 라는 잘못된 값이 출력되었습니다.


왜 이런 결과가 나왔는지 궁금합니다.







'c·c++ > c 프로그래밍' 카테고리의 다른 글

폰트로 사각형 그리기   (0) 2012.01.14
Visual Studio 사용법  (0) 2011.12.31
short형과 unsigned short형  (0) 2011.12.26
초보자들이 보기좋은 쉬운 책  (0) 2011.12.25
문자열의 배열과 포인터  (0) 2011.12.16