프로그래밍/C2012. 9. 24. 13:58

include guard란 실수로 인해 같은 header 파일이 한번 이상 include되는 걸 막는 방법이다.


아래 예제를 보자.


basic.h


intermediate.h


expert.c


보는 바와 같이 expert.c에서 basic.h를 두번 include하는 결과가 되었다. (라인1에서 한번, 라인 2의 intermediate.h는 결국 basic.h를 include한다)


그래서 이러한 상황을 막기 위해 헤더파일을 정의 할 때 다음과 같이 basic.h에 중복 정의를 막는 매크로를 사용한다.

basic.h  (modified)

 

이러한 예제만 보면 별거 아닌거 가지고 저러나 싶겠지만, 파일 수십가지 수백가지가 되면 의도치않게 중복으로 include하게 된다.

Posted by code cat