[Effective C++] 항목 2: #define을 쓰려거든 const, enum, inline을 떠올리자
·
책/Effective C++
#define의 문제점#define은 전처리 지시문으로, 컴파일러가 코드를 읽기 전에 텍스트 치환이 이루어집니다.#define ASPECT_RATIO 1.653컴파일러는 ASPECT_RATIO라는 이름을 알 수 없고, 단지 1.653만을 인식합니다. 그 결과 ASPECT_RATIO라는 이름은 컴파일러가 쓰는 기호 테이블에도 들어가지 않습니다.이로 인해 에러 메시지엔 1.653만 보여 코드 분석과 디버깅이 어려워집니다. 대안 1 : constconst double AspectRatio = 1.653;AspectRatio는 상수 타입의 데이터이므로 컴파일러의 눈에도 보이며 기호 테이블에도 들어갑니다. 상수로 교체하려는 경우 조심해야 할 두 가지 경우1. 상수 포인터(Constant Pointer)의 정의포인..