더북(TheBook)

1.9.2 전처리기 지시문

이 절에서는 전처리에 사용할 수 있는 명령(지시문)을 소개한다. 대부분 언어와 무관하므로 최소한으로 사용하고 특히 매크로 사용은 제한하는 것이 좋다.

1.9.2.1 매크로

"대부분의 매크로는 프로그래밍 언어,

프로그램 또는 프로그래머의 결함을 보여준다."

- 비야네 스트롭스트룹(Bjarne Stroustrup)

매크로는 매크로 이름을 인수와 함께 텍스트 정의로 확장해 코드를 재사용하는 오래된 기법이다. 매크로를 사용하면 프로그램에 권한을 부여할 가능성이 많지만 프로그램을 망칠 가능성은 더 커진다. 매크로는 타입 개념 없이 무분별하게 텍스트를 대체하기 때문에 네임스페이스, 스코프 또는 다른 언어 기능에 대한 저항력이 있다. 불행하게도 일부 라이브러리는 major와 같은 공통 이름을 갖는 매크로를 정의한다. 우리는 이러한 매크로를 사용하려는 사람들에게 자비를 베풀지 않고, #undef major와 같은 매크로를 사용해 타협 없이 정의 해제한다. 심지어 Visual Studio는 오늘날에도 minmax라는 매크로를 정의한다. 따라서 /DNOMINMAX로 컴파일해 이 기능을 사용하지 않도록 설정하는 것이 좋다. 대부분의 매크로는 다른 기법(상수, 템플릿, 인라인 함수)으로 대체할 수 있다. 그러나 만약 여러분이 정말로 대체할 다른 방법을 찾지 못한다면,

Note≡ 매크로 이름

매크로에 매우_긴_보기_좋지_않은_이름을_대문자로 사용하라!

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.