작성
·
18
1
안녕하세요 4.10 scanf()함수의 사용법을 듣다가 의문이 생겨 질문 남깁니다.
j modifier 부근을 설명해 주실 때 portable type에 대해 말씀하셨는데, 기억이 잘 나지 않습니다 ㅠㅠ portable type에 대해 설명해 주실 수 있으신가요?
답변 1
1
안녕하세요? 질문&답변 도우미 Soobak 입니다.
Portable type
은 다양한 플랫폼 환경에서 동일하게 동작하도록 '호환성을 보장' 하는 자료형을 의미합니다.
C언어에서 기본 자료형은 플랫폼 환경에 따라서 크기가 달라질 수 있는데요, Portable type
은 이러한 차이를 해결하고 '이식성(Portablility)' 을 확보하기 위해 도입된 자료형입니다.
예를 들어서, int
자료형의 경우 일반적으로 크기가 4
바이트이지만, 특정 플랫폼 환경에서는 2
바이트 일 수도 있습니다. 이렇게 플랫폼에 따라 달라질 수 있는 데이터 크기에 대하여 프로그래머가 신경쓰지 않도록 도입된 자료형이 Portable type
입니다.
해당 강의 중 intmax_t
는 해당 플랫폼에서 표현할 수 있는 가장 큰 크기의 정수형 타입을 나타내며, 어떤 플랫폼에서도 동일한 의미를 가지므로 이식성이 보장됩니다. (플랫폼에 따라서 intmax_t
는 long long
으로 정의될 수도, long
으로 정의될 수도 있지만, 프로그래머가 이를 신경 쓰지 않아도 됩니다.)
그리고, printf()
나 scanf()
함수에서 이러한 자료형을 처리하기 위한 것이 j Modifier 입니다.
보다 자세한 내용을 복습해보고 싶으시면, 강의 3.9 고정 너비 정수 의 초반 부분 교수님 설명을 참고하시면 이해에 도움이 되실 것 같습니다.
상세하게 알려주셔서 감사합니다!