long long int
#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++ 결과] 라는 잘못된 값이 출력되었습니다.
왜 이런 결과가 나왔는지 궁금합니다.