2012년 8월 30일 목요일

전처리기

컴파일러에 앞서서 사용자가 정의한 각종 내용을 미리 처리한다.
반드시 #으로 시작하며 문장의 끝에는 세미콜론이 붙지 않는다.
소스 파일의 첫 부분에 위치하며, 첫 칸부터 시작해서 입력하고 한 줄에 하나씩의 명령을 입력한다.

#include

헤더파일 등을 포함. 컴파일러의 기본 경로에 있는 파일은 < >안에, 현재 소스의 경로에 있는 때에는 " "안에 파일명을 입력한다.

#define

매크로를 정의. 선행처리기는 매크로와 대응하는 내용을 빈칸을 통해서 구분한다.

매크로 상수

 1 #define PI 3.141592

매크로 함수

 1 #define SQUARE(x) ((x)*(x))
 2 #define PRINTOUT(x) printf(#x)
매개변수에 따옴표를 포함시키려면 #을 붙인다.

#if, #elif, #else, #endif, #ifdef, #ifndef

조건부 컴파일

 1 #if 조건1
 2     문장1
 3 #elif 조건2
 4     문장2
 5 #else
 6     문장3
 7 #endif

 

내장된 매크로

__DATE__
컴파일 날짜
__TIME__
컴파일 시간
__LINE__
소스 코드의 줄번호
__FILE__
현재 소스 파일의 이름


Example :

 1 #include <stdio.h>
 2 
 3 /*
 4     매크로 함수
 5 */
 6 #define PRINTLN(x) printf("%s\n",x)
 7 #define PRINTOUT(x) printf(#x)
 8 
 9 int main ()
10 {  
11     char str1[] = "String 1.";
12 
13     PRINTLN(str1);
14     PRINTOUT(String 2.);
15 
16     system("PAUSE");
17     return 0;
18 }