조건부 컴파일
조건부 컴파일을 사용하면 지정한 조건에 따라 코드의 일정 부분을 컴파일할지 안 할지 지정할 수 있다.
이러한 조건문 컴파일에 사용할 수 있는 컴파일 지시자의 종류
1. #if
2. #ifdef
#if
지시자를 이용한 조건부 컴파일의 사용법은 c언어의 if조건문과 매우 비슷
#if 조건식1
컴파일할 명령문1
#elif 조건식2
컴파일할 명령문2
#else
컴파일할 명령문3
#endif
#if 지시자 다음에 나오는 조건식1의 결과가 0이 아니면 참, 0이면 거짓으로 간주
또한 #elif 지시자를 사용하여 조건식을 여러개 사용할 수도 있다.
#else 지시자를 사용하여 모든 조건에 해당하지 않는 경우를 지정할 수도 있다.
하지만 c언어의 조건문과는 달리 #endif 지시자를 사용하여 반드시 조건부 컴파일의 끝을 명시해야 한다.
#ifdef
여러개의 해더파일을 작성한 후에 전부 합치다 보면, 같은 이름의 변수나 함수가 중복으로 선언되어 있을 가능성이 있다.
이러한 경우, #ifdef 지시자를 사용하여 중복선언의 가능성을 없앨 수 있다.
#ifdef지시자를 이요한 조건부 컴파일의 형식
#ifdef 매크로 이름
컴파일할 명령문1
#elif 조건식
컴파일할 명령문2
#else
컴파일할 명령문3
#endif
#ifdef는 'if defined'라는 문자를 줄여서 만든 것으로 #ifdef 지시자 다음에 나오는 매크로 이름과 같은 이름의 매크로가 이미 정의되어 있다면, 컴파일할 명령문1이 컴파일 될 것이다.
만약 매크로 이름과 같은 이름의 매크로가 정의되어 있지 않으면, 컴파일할 명령문1은 컴파일되지 않고 넘어갈 것이다.
'C언어' 카테고리의 다른 글
C언어 <윤년, 사분면, 알람시계, 오븐 시계> (0) | 2023.08.05 |
---|---|
C언어 <파일 입출력 파일> (0) | 2023.08.05 |
C언어 <메크로 함수> (0) | 2023.08.05 |
C언어 <공용체> (0) | 2023.08.05 |
C언어 <구조체> (0) | 2023.08.05 |