-
전처리기 #if , #ifndef , #define, #endifSoftware/C 2024. 8. 20. 16:45728x90
#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