형변환

형변환 판단 기준

암시적 변환은 컴파일러가 자동으로 적용하고 명시적 변환은 개발자가 의도를 코드에 드러냅니다.

자동 변환

계산을 맞추기 위한 승격

int와 double을 함께 계산하면 더 넓은 타입으로 맞춰 결과를 만듭니다.

int -> double
명시 변환

의도를 코드에 표시

static_cast는 변환이 필요한 이유를 읽는 사람에게 분명히 보여 줍니다.

static_cast<int>
축소 변환

값 손실 가능성

double을 int로 바꾸면 소수부가 사라지고 큰 정수는 범위를 넘을 수 있습니다.

3.9 -> 3
문자 변환

코드 값과 문자 사이

char와 int 사이 변환은 문자 자체와 내부 코드 값을 구분해서 읽어야 합니다.

char code
비교 전 확인부호 있는 값과 없는 값을 비교하면 예상과 다른 크기 비교가 일어날 수 있습니다.
정수 나눗셈정수끼리 나누면 소수 결과가 버려지므로 필요한 쪽을 먼저 실수로 바꿉니다.
캐스트 선택C 스타일 캐스트보다 static_cast처럼 의도가 좁은 도구를 쓰면 위험 범위가 줄어듭니다.