#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_    소스 파일의 최종 변경 날짜와 시간

+ Recent posts