#ifdef 전처리기
ifdef는 if define의 줄임말, 즉 '만일 define되어 있다면~'이라는 뜻입니다.
MY_DEBUG가 #define문으로 선언되어 있으면 #ifdef ~ #endif 사이에 있는 구간이 실행이 됩니다.
디버그를 해보고 싶을 때는 '#define MY_DEBUG' 한 줄만 써넣어주면 되고,
디버그를 하고 싶지 않을 때에는 '#define MY_DEBUG'를 간단하게 삭제만 해주면 됩니다.
#ifndef 전처리기
ifndef은 if not define의 줄임말, 즉 '만일 define되어 있지 않다면~'이라는 뜻입니다.
MY_DEBUG가 #define문으로 선언되어 있지 않기 때문에 #ifndef ~ # endif 사이에 있는 구간이 실행됩니다.
조건부 컴파일
조건부 컴파일이란, 조건에 따라 필요한 문장만 골라서 컴파일하는 것입니다. 조건부 컴파일 전처리기들은 실무에서 헤더 파일을 선언할 때 많이 사용합니다. 만약 소스 파일에서 헤더 파일을 사용하기 위해 #include를 하다가 실수로 두 번하면 오류가 발생할 수 있습니다.
이 때, #ifndef 전처리기를 사용하면 #include를 중복 사용해서 발생하는 오류를 막을 수 있습니다.
_TEST_H_가 #define문으로 선언되어 있지 않다면 #ifndef ~ #endif 사이 코드들을 컴파일합니다.
이와 같이 헤더 파일을 구성하면, test.h 헤더 파일이 처음 #include될 때는 _TEST_H_가 정의되어 있지 않기 때문에 #ifndef를 처리되므로, #define _TEST_H_도 실행됩니다.
하지만 그 이후에 test.h 헤더 파일이 또 다시 #include된다면 좀 전에 #define _TEST_H_가 이미 한 번 실행되었기 때문에 더이상 #ifndef를 처리하지 않습니다.
즉 헤더 파일 중복 참조를 막을 수 있게 되는 것입니다.
'Language > C 및 C++' 카테고리의 다른 글
C언어 함수 포인터 (0) | 2021.09.19 |
---|---|
C언어 프로세스 (0) | 2021.09.19 |
C언어 자료형 (0) | 2021.09.02 |
C 프로그램 실행 파일 (0) | 2021.09.02 |
C언어의 서술 형식 (0) | 2021.09.02 |