C언어

C언어 <조건부 컴파일>

um_coding 2023. 8. 5. 15:12

조건부 컴파일

조건부 컴파일을 사용하면 지정한 조건에  따라 코드의 일정 부분을 컴파일할지 안 할지 지정할 수 있다.

 

이러한 조건문 컴파일에 사용할 수 있는  컴파일 지시자의 종류

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