-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
%lld 질문드립니다.
21.11.19 22:50 작성 조회수 174
0
안녕하세요,
저는 맥북으로 vscode를 사용하여 코딩 중에 있습니다.
강의에 보면 %lld 형식지정자를 사용할 때, INT_MAX + 1을 사용하여 값을 받도록 하는데요,
저같은 경우 INT_MAX + 1이라고 넣으면 overflow가 발생하고 INT_MAX + 1LL이라고 반드시 입력을 해줘야지만 제대로 된 값이 출력됩니다.
보통 의문점이 생기면 구글링 통해서 해결하곤 하는데 이건 어떻게 검색해야 할지 감이 안 잡히네요 ㅜㅜ
아무리 생각해봐도 왜 이런 문제가 발생하는지 잘 모르겠습니다.
-------------------------------------------------
좀더 살펴보았는데요,,,
problems에 경고문이 뜨네요.
"format specifies type 'long long' but the argument has type 'int'"
그니까, argument 부분에서 이미 overflow가 발생했기 때문에 값이 -2147483648로 받아지는 것 같아요.
그런데 이 경고문을 바탕으로 보았을 때는 강의 예시에서는 어떻게 overflow가 발생하지 않을 수 있는지 궁금합니다...
go to definition에서 보면 강의에 있는 limit.h 라이브러리가 제 것과 다른데, 그 문제일 수도 있겠다 싶긴 한데요... 제 라이브러리에서는 INT_MAX가 int로 되어있고 선생님께서 사용하시는 라이브러리에는 long long으로 되어 있다든지.. 교수님의 라이브러리에는 #define처리가 되어 있었던 것 같은데 저는 그렇게 안 되어 있거든요. 이게 좀 실마리가 될 수 있을지 모르겠습니다.
답변을 작성해보세요.
답변 1