Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어에서 조건부 컴파일이란 무엇입니까?

<시간/>

C 프로그래밍 언어에서 여러 지시문은 프로그램 코드 부분의 선택적 컴파일을 제어합니다. 다음과 같습니다 -

  • #만약
  • #else
  • #엘리프
  • #endif

#if의 일반 형식 다음과 같습니다 -

#if constant_expression
   statement sequence
#endif

#else는 C 키워드 else와 매우 유사하게 작동합니다.

#elif는 "else if"를 의미하고 if else-if 컴파일 체인을 설정합니다.

무엇보다도 #if는 코드를 "주석 처리"하는 대체 방법을 제공합니다.

예를 들어,

#if 0
   printf("#d", total);
#endif

여기서 컴파일러는 printf("#d", total);

를 무시합니다.

#ifdef 및 #ifndef

#ifdef는 "정의된 경우"를 의미하며 #endif로 종료됩니다.

#indef는 "정의되지 않은 경우"를 의미합니다.

#undef

#undef는 이전에 정의된 정의를 제거합니다.

#줄

#line은 현재 컴파일된 코드의 줄 번호를 포함하는 __LINE__과 컴파일 중인 소스 파일의 이름을 포함하는 문자열인 __FILE__의 내용을 변경합니다. 둘 다 컴파일러에서 미리 정의된 식별자입니다.

#pragma

#pragma 지시문은 컴파일러에 다양한 명령을 제공할 수 있도록 하는 구현 정의 지시문입니다.

예시

다음은 #ifdef, #ifndef, #else 및 #endif를 보여주는 C 프로그램입니다. -

# include <stdio.h>
# define a 10
void main(){
   #ifdef a
   printf("\n Hello I am here..");
   #endif
   #ifndef a
   printf("\n Not defined ");
   #else
   printf("\n R u There ");
   #endif
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

Hello I am here..
R u There