선택 기준

기본 타입은 값의 의미 → 범위 → 오차 → 표현 방식 순서로 고른다

“숫자니까 int”처럼 고르지 말고, 값이 무엇을 뜻하는지부터 확인하면 오버플로와 실수 비교 오류를 줄일 수 있다.

1

값의 역할은?

개수, 측정값, 문자, 조건 중 무엇인지 먼저 나눈다.

2

최댓값은?

입력값뿐 아니라 중간 계산값까지 범위를 계산한다.

3

음수가 필요한가?

음수가 의미 없을 때만 unsigned를 검토한다.

4

오차를 허용하는가?

실수라면 정밀도와 비교 기준을 함께 정한다.

5

환경 의존 값인가?

크기와 범위는 실제 컴파일 환경에서 확인한다.

상황별 추천 시작점

start here
상황 시작 타입 바꿔야 하는 신호 검증 방법
일반 정수 int 합계나 곱셈 결과가 범위를 넘을 수 있음 numeric_limits<int>
큰 정수 long long 파일/네트워크 형식과 크기를 맞춰야 함 고정폭 타입과 직렬화 규칙 확인
실수 계산 double 메모리 대역폭이 중요하거나 정밀도가 더 필요함 오차 허용치와 출력 자릿수 확인
문자/상태 char, bool 문자 인코딩, 다국어, 상태 개수가 늘어남 인코딩 타입과 enum 사용 여부 확인

unsigned는 “안전한 큰 수”가 아니다

뺄셈 결과가 0보다 작아질 수 있으면 unsigned가 오히려 버그를 숨긴다.

실수는 비교 기준이 필요하다

0.1 + 0.2 == 0.3처럼 직접 비교하면 오차가 드러난다.

플랫폼 값은 확인한다

long, bool, long double은 환경별 차이가 날 수 있다.