#include 전처리기 지시어
ex)
#include<filename> //표준 라이브러리 헤더 파일
#include"filename" //사용자 정의 헤더파일
#define 전처리기 지시어 : 기호 상수
ex)
#define 식별자 치환텍스트
#define PI 3.14159
#define 전처리기 지시어 : 매크로
ex)
#define CIRCLE_AREA(x) (PI*(x)*(x))
조건부 컴파일
#ifndef NULL //널이 정의 되지 않았다면
#define NULL 0 //NULL을 0으로 정의
#endif //조건 디파인 종료
ex)
#if 0
컴파일이 되지 않는 코드
#endif //주석처럼 사용 가능
#error 지시어
는 지시어에 지정된 토큰들을 포함한 시스템 구현에 의존적 메시지를 인쇄한다
ex)
#error 1 - Out of range error //#error지시어가 처리 될때 지시어에 있는 토큰들이 오류메시지로
//표시되고 전처리가 중단되고, 프로그램은 컴파일 되지 않는다
#pragma 지시어
는 구현에 정의된 동작을 한다
#연산자
는 치환 텍스트 토큰을 큰따옴표로 둘러싸인 문자열로 변환
ex)
#define HELLOR(x) cout<<"Hello, " #x<<endl;
HELLO(John)은 cout<<"Hello, " "John"<<endl;로 치환됨
##연산
기호는 두개의 토큰을 연결한다
ex)
#define TOKENCONCAT(x, y) x ## y
TOKENCONCAT(O, K)는 프로그램에서 OK로 치환됨
#line 전처리기 지시어
는 뒤이어 나오는 소스 코드 줄번호를 지정된 상수 정수 값에서 시작하여 번호가 매겨지도록 함
ex)
#line 100 //다음 소스코드 줄 번호를 100부터 시작하도록
미리 정의된 기호 상수
_LINE_ 현재 소스 코드 줄의 줄번호
_FILE_ 소스 파일의 추정되는 이름
_DATA_ 소스 파일이 컴파일된 날짜
_STDC_ 프로그램이 ANSI C표준을 따르는지
_TIME_ 소스 파일이 컴파일된 시간
_TIMESTAMP_ 소스 파일의 최종 변경 날짜와 시간