ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 전처리기 #if , #ifndef , #define, #endif
    Software/C 2024. 8. 20. 16:45
    728x90
    #if , #else , #endif
    #if 조건
    	문장
    #elif 조건
    	문장
    #else
    	문장
    #endif

    위와 같은 형태로 사용되며 조건부 컴파일이 된다.

     

     

    #ifdef

    매크로가 정의 되어 있으면 아래를 컴파일, 안되어 있으면 컴파일하지 않는다.

     

     

     

    #ifndef , #endif

    헤더파일의 중복을 방지하기 위해 많이 사용되는 전처리문이다.

    헤더파일 맨 첫 부분에 특정 매크로를 ifndef하면 처음에는 정의되어 있지 않으니 아래 내용을 컴파일한다.
    ifndef 바로 아래 해당 매크로를 정의해놓으면 다음 번 이 헤더파일이 불러와 질 때는 매크로가 정의되어 있으므로 헤더파일을 다시 불러오지 않는다. 한 마디로 중복 포함을 방지하는 역할을 하는 셈이다.

    #ifndef __POHAM__
    #define __POHAM__
    
    #include "headers.h"
    
    void hamsu(int _num)
    {	
    	holi;
    }
    
    
    
    
    #endif  // __POHAM__의 끝

    위 처럼 처음 실행 시 __POHAM__ 매크로가 정의되어 있지 않으므로 해당 헤더파일을 포함시키는 데,  두 번째 불러올 때부터는 __POHAM__ 매크로가 정의되어 있으므로 무시하고 포함시키지 않아 중복 포함을 방지할 수 있다.

     

     

    728x90

    'Software > C' 카테고리의 다른 글

    [MISRA C 2012] 정적 분석 팁 ( 계속 업데이트 )  (0) 2024.08.29
    [Keyword] __interrupt  (0) 2024.08.21
    [Keyword] extern , static  (0) 2024.08.20