7.8 연습문제: 자료형 크기 구하기
다음 소스 코드를 완성하여 14가 출력되게 만드세요.
practice_integer_sizeof.c
#include <stdio.h> int main() { ①___________ num1; ②___________ num2; printf("%d\n", sizeof(num1) + sizeof(num2) + sizeof(int)); return 0; }
실행 결과
14
정답
① short ② long long 또는 ① unsigned short ② unsigned long long
해설
sizeof 연산자로 변수의 자료형과 크기를 구한 뒤 모두 더하여 14가 나왔습니다. 먼저 int의 크기는 4바이트이므로 남은 값은 10입니다.
C 언어의 정수 자료형 크기가 1, 2, 4, 8바이트 이므로 변수 두 개를 더해서 10이 되려면 2 + 8 또는 8 + 2 조합밖에 없습니다. 따라서 short와 long long 또는 unsigned short와 unsigned long long으로 변수를 선언해주면 됩니다. 여기서 부호는 자료형의 크기에 영향을 주지 않으므로 어떻게 하든 결과는 같습니다.