매직 넘버를 사용하는 것은 좋지 못한 습관이다.
매직 넘버란 아래 코드와 같이 한 반의 최대학생 수를 30으로 나타내는 것이다.
int maxStudents = numClassrooms * 30;
매직넘버 대신 심볼릭 상수를 정의하는 것이 바람직한데
심볼릭 상수는 상수 리터럴 값이 지정된 이름이다. 그 방법은 두 가지 있다.
1. 매크로를 사용한다. (bad)
#define MAX 30
매크로를 사용하면 전처리기가 MAX를 발견하면 30으로 대체한다. 여기에는 두 가지 문제가 있다.
첫 번째로, 매크로를 사용한 심볼릭 상수는 디버거에 표시되지 않는다.
두 번째로, #define 된 값은 항상 파일 스코프(범위)에 있으므로 나중에 #define된 값과 충돌할 수 있다.
2. const 변수를 사용한다. (good)
constexpr int MAX {30};
위 변수는 디버거에 표시되고, 일반적인 변수 스코프를 따른다.
'C++' 카테고리의 다른 글
[C++] bitset 라이브러리 (0) | 2024.01.17 |
---|---|
[C++] cmath (0) | 2024.01.17 |
[C++] escape sequences (0) | 2024.01.16 |
[C++] Type Casting (0) | 2024.01.16 |
[C++] boolalpha 사용해서 true/false 출력하기 (0) | 2024.01.16 |