조건부 컴파일 전처리 명령어
#elif
#if
#else
#endif
#ifdef
#ifndef
전처리 컴파일 명령어입니다
상황에따라 컴파일하느냐 그냥 넘기느냐 의 용도로 씌입니다
사용법은
#if( 조건식1)
컴파일할문장1
#elif(조건식2)
컴파일할문장2
#else
컴파일할문장3
#endif
조건식 1이 ture -> 컴파일
false ->조건식 2검사 ture -> 컴파일2
false -> 컴파일3 #endif 로 전처리문장종료;
-----------------------------------------------------------------------------
#ifdef
매크로명의 정의도어있을때 실행되는 조건명령어입니다 사용법은 위와같습니다
#ifdef(매크로명)
컴파일할문장1
#elif(조건식1)
컴파일할문장2
#else
컴파일할문장3
#endif
---------------------------------------------------------------------------
#ifndef
매크로명이 정의되어 있지 않을때 실행되는 조건명령어입니다 사용법은 동일합니다
#ifdef(매크로명)
컴파일할문장1
#elif(조건식1)
컴파일할문장2
#else
컴파일할문장3
#endif
---------------------------------------------------------------------------
한가지 주의할점은 기본함수와다르게 영역을 나누지않습니다
#endif
이문장으로 조건부명령어의 끝을 알려주어야합니다
전처리 명령어는 프로그램의 호환성을 높여줍니다
예를들어
c언어의 기본문법이 같을지라도 컴파일러와 버전에따라서 자료형의크기나 지원되는 라이브러리 함수가 다를수있습니다.
그러므로 여러가지 컴파일러에서 모두 컴파일 될수있도록 코드를 작성한후 실제 컴파일할때
컴파일러에 맞는 코드를 선택할수 있도록 합니다.
요즘 컴파이 환경에서는 씌이지 않을수있지만 알아두면 좋습니다
예제)
#include <stdio.h>
#define Tc // TC매크로명 정의
#ifdef TC //tc매크로 정의되어있다면
#include <conio.h> //두줄 컴파일
#difine MAX_INT 32767 //
#else // 그렇지않다면
#define MAX_INT 2147483647 //이문장 컴파일
#endif // ifdef 끝
int main()
{
int m=MAX_INT; // int형 변수에 max_int 값 초기화
#ifdef TC //매크로 tc 정의되어있다면
clrscr(); // 문장컴파일
#endif //ifdef 끝
printf(\"MAXIMUM vakue => %d\\n\",m);
#ifdef TC //tc정의되어있다면
getch(); //컴파일
#endif //ifdef 끝
return 0;
}
질문인가 해서 와봤더니 정보게이였노... 일단 ㅊㅊ
전처리기에서 # 연산자와 ## 연산자를 빼면 섭하죠ㅎㅎ
덧붙여서 #pragma comment, #pragma pack 나 #error 도 있다.
절붰습니더
#include: 붙여넣기
#define: 덮어쓰기
기내요