Preprocessor Macro로 .h 의 중복 컴파일을 방지하는 방법

C/C++/Objective-C 등으로 프로그램을 작성할 때에 있어서 사용자가 새롭게 정의한 헤더 파일을 사용하는 경우는 셀 수도 없을 만큼 많다.
이럴 때, 하나의 헤더 파일을 여러 소스코드에서 include 하는 경우가 많이 발생하게 된다.
예를 들어, book.h 파일을 a.cpp 와 b.cpp에서 include 하게 되면, 컴파일을 하는 과정에서 중복으로 book.h가 컴파일되게 된다.
이러한 경우, 상당히 비효율적인 프로그램이 되게 되는데, 이 것을 막기 위해서 Preprocessor Macro 중 하나인 #ifndef ~ #endif 를 사용한다.

이렇게 작성되는 헤더는 다음의 예시와 같다.

#ifndef __FILENAME__H__
#define __FILENAME__H__

// to do something here

#endif
  •  Module, Library등으로 추가된 경우에는 #include <module.h>를, 사용자 정의 헤더의 경우는 #include “file.h” 로 사용한다.

댓글 남기기