제 11 장 전처리기
목 차
전처리기의 의미
전처리기의 종류 및 기능
전처리기의 의미
컴파일 전에 문법외적인 사항 처리
‘#‘ 으로 시작되는 명령어
C 언어의 문법과 상관없는 독자적 규칙 사용
메크로
함수와 비슷한 기능
상수의 선언
‘;’ 을 사용하지 않음
전처리기 예제
1. #include <stdio.h>
2. #define CODE 5
3. main() {
4. int su;
5. #ifdef MODE
6. su=5;
7. #else
8. su=10;
9. #endif
10. printf("\n su = %d", su);
전처리기의 종류와 기능 (1)
#include
외부 파일의 병합 ( 포함 )
“ “
사용자가 작성한 외부 파일
헤더 파일의 경우 \include 디렉터리에 저장
#include “user.h”
< >
컴파일러에서 제공하는 파일
#include <stdio.h>
전처리기의 종류와 기능 (2)
#define
자주 사용하는 상수값 , 메크로 정의
#define MAX 100 char *str[MAX];
상수형 자료 정의 후 해당 자료로 치환
#define ERRORRN " 프로그램 오류 발생“
printf("%s", ERRORPRINT);
프로그램의 내용을 변경
#define PROERROR printf(“ 오류 발생” )
전처리기의 종류와 기능 (3)
시스템 정의 메크로
__FILE__
현재 처리중인 파일의 이름을 나타내는 문자열
__TIME__
컴파일 되는 현재 시각을 나타내는 문자열
__DATE__
컴파일 되는 현재 날짜를 나타내는 문자열
__LINE__
컴파일 되는 현재 파일의 라인을 정수로 나타냄
__STDC__
처리시스템이 ANSI C 표준일 때는 값이 1
전처리기의 종류와 기능 (4)
메크로 정의문
#undef
#define 로 정의한 상수 해제
#define MAX 100
#undef MAX
#ifdef
메크로의 선언 여부 확인
#ifdef MAX
#undef MAX
#define MAX 200
#ifndef
메크로의 미선언 (if not define) 여부 확인
#ifndef MAX
전처리기의 종류와 기능 (5)
조건부 컴파일
시스템 ( 상수 ) 의 상태 ( 값 ) 에 따라 소스코드 변경
O.S 에 따른 환경
H/W 사양에 따른 환경
#if~#else~#endif 로 구성됨
#define SYSTEM 1
#if Windows98 == 1
#define READ read()
#else
#define READ() __read()
#endif