메모리 효율성과 속도 측면을 생각해서 사람의 나이를 char로 했다고 가정하자. (127살이 넘는 사람은 제외) 엄마 49세, 아빠 47세, 큰딸 14, 작은딸 12살 우리 가족의 나이를 합하면 122살이다. 이 역시 char 범위 안에 든다. 따라서 아래 두번째 printf의 결과는 1바이트가 되어야 한다.
#include <stdio.h>
int main(void) {
char dad = 49;
char mon = 47;
char big_daughter = 14;
char little_daughter = 12;
char total_age = dad + mon + big_daughter + little_daughter; // 122
printf("우리 가족의 총 나이는 %d 입니다.\\n", total_age);
printf("%d\\n", sizeof(dad+mon+big_daughter+little_daughter)); // 1이 나와야 한다.
return 0;
}
cpu가 처리하기 가장 적합한 크기로 int가 설정되는데
dad+mon+big_daughter+little_daughter 의 결과가 char범위 안에 든다 하더라도, int로 형변환되어 처리되어 버린다.
결론: 크기가 매우 민감하지 않은 자료형이라면 int 형으로 처리하는 것이 속편하다.