Effective C++ 3판에서 봤던 내용이 기억 나는데, 전처리 매크로(#define)가 위험하기 때문에 C++ 스타일을 사용하자고 제안했던 것을 볼 수 있다. 일전에 동기인 강일이형이 보여 주었던 전처리 매크로(#define)의 문제점을 통해서 확신이 들었다.

이번 항목은 이런 전처리 매크로를 아직 쓰는 이유와 어떻게 대처 할 수 있는지에 대해서 이야기 하고자 한다.


1. 헤더 꼬임 방지하기

즉 헤더가 꼬이는 것을 방지하는 것을 위해서 사용 한다.


2. 전처리 기능 접근하기

좀 편하게 진단 코드를 사용 할 수 있기 위해서 사용 한다.

관련 링크 : C/C++ Preprocessor Reference Predefined Macros


3. 컴파일 타임에 코드 선택하기

  • 디버그 코드와 릴리즈 코드를 나누기 위해서
  • 플랫폼에 따른 코드를 나누기 위해서
  • 보다 다양한 타입을 설정하기 위해서(하지만 이것은 enum 을 사용을 먼저 고려해야 된다고 생각한다)


C++ 창시자의 전처리기를 어떻게 생각하는지 궁금하다면 비야네님 싸이트에 가는게 좋을듯 싶다. 물론 영어다.


총평

헤더 꼬임 방지는 #pragma once 와 같이 사용 하고 있다. 전처리 기능 접근하기 위해서는 어쩔수 없다. : ) 그리고 컴파일 타임 코드 선택하는 것은 보통 라이브러리 제작자가 사용 한다. 나같은 경우 거의 사용하지 않는다.

나름 재미있는 항목이였다.

posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요