같은 헤더 파일을 여러번 포함하지 않도록 하려면?

분할 컴파일을 이용해 프로젝트를 구현할 때 하나의 소스 파일에서 같은 헤더 파일을 여러번 포함하는 경우가 가끔 발생합니다.


선행처리기가 처리하는 문장 중 #if, #else, #endif 문을 이용하면 조건식을 검사해서 코드를 컴파일하거나 컴파일 하지 않도록 설정할 수 있습니다.


조건식을 검사하는 #if문 외에도 매크로가 정의되었는지를 검사하는 #ifdef, 매크로가 정의되지 않았는지를 검사하는 #ifndef가 있습니다.


정리

#if, #else, #endif : 조건식 검사 후 코드 컴파일 or 컴파일 하지 않기

#ifdef : 매크로가 정의되었는지 확인해서 정의되었으면 아랫줄 실행

#ifndef : 매크로가 정의되었는지 확인해서 정의 안되었으면 아랫줄 실행



nSpace.h




다시 또 nSpace.h 헤더파일이 호출된다면 이미 NSPACE_H가 정의되어있기 때문에 다시한번 헤더파일을 재정의하진 않겠죠?


#if,#else, #endif, #ifdef, #ifndef 등은 선행처리기 명령어입니다. 따라서, 컴파일러로 컴파일 하기 전 먼저 실행됩니다.

유사한 구문으로

#pragma once가 있는데 컴파일러 명령어로 같은 결과를 얻을 수 있습니다.

'Programming Language > C/C++' 카테고리의 다른 글

C++ STL  (0) 2014.10.10
C++ 템플릿  (0) 2014.10.10
C++ 네임스페이스  (0) 2014.10.10
C++ 인라인 함수  (0) 2014.10.10
C 배열과 포인터  (0) 2014.10.10
Posted by 긍정왕오킹