‹ 블로그로 돌아가기 Mar 12, 2024 [Effective C++] item 02 #define을 쓰려거든 const, enum, inline을 떠올리자 #define보다 Const, Enum, Inline을 더 선호 전처리보다 컴파일러를 선호한다는 표현 #define FOO 1.024 위 케이스는 컴파일 전에 해당 문자열을 치환하는 전처리기 위의 FOO라는 심볼릭의 존재를 컴파일러가 알지 못한 채로 제거될 수 있어서 오류에도 상수로 표기될 수 있음, 따라서 이와 관련된 버그가 발생할 경우, 추적하는 데에 시간을 낭비하게 될 것 const double FOO = 1.024; 해결책은 매크로를 상수로 대체하는 것이다. 위 상수는 컴파일러에서 확실히 관측할 수 있고 심볼 테이블에도 확실하게 입력된다. 또한, 전처리기를 통해 일괄적으로 대체된 경우 해당 객체의 복사본이 여럿 생성될 수 있지만 상수의 경우는 복사본이 하나 이상 생성되지 않는다. ☰ 모든 글 보기 댓글 작성게시글에 대한 의견을 남겨 주세요.이름비밀번호공개 범위공개비공개댓글 내용댓글 등록댓글 0개