literal reading

리터럴과 상수

코드에 직접 적은 값은 진법, 접두사, 접미사로 먼저 해석하고 반복되는 의미가 보이면 이름 있는 상수로 올린다.

표기에서 읽는 정보

source text
0b1010

이진수 정수

비트 플래그처럼 자리 의미가 중요할 때 읽기 쉽다.

0xFFU

16진수와 unsigned

마스크 값처럼 부호 없는 해석을 의도한다.

3.14F

float 리터럴

기본 double 대신 float 계산을 원함을 표시한다.

'\\n'

문자 이스케이프

한 글자지만 화면 출력에서는 줄바꿈 동작을 만든다.

R"(C:\new)"

원시 문자열

백슬래시를 그대로 보존해 경로 표기에 적합하다.

nullptr

포인터 리터럴

0이나 NULL보다 널 포인터 의도가 명확하다.

상수로 올리는 순서

named constant
1

값의 의미를 붙인다

`0.15`보다 `DISCOUNT_RATE`가 유지보수 지점을 줄인다.

2

타입과 범위 고정

`const double`처럼 컴파일러가 검사할 정보를 남긴다.

3

필요한 스코프에 둔다

함수 안에서만 쓰는 값은 함수 안에 두어 이름 충돌을 줄인다.

#define과 비교 전처리 치환은 타입과 스코프가 사라지므로, 고정값에는 const 계열을 먼저 선택하는 습관이 안전하다.