**매크로
치환 방식으로 적용
상수 매크로
#define PI 3.14f
#define MIN 0
#define MAX 100
함수 매크로 : 함수의 형식을 띈 매크로, 함수x
#define PLUS(x) (x) + (x)
cout<<PLUS(10)<<endl;
.
.
out
20
함수 매크로 안에 있는 요소들에 ()를 사용해야 원하는 방식대로 동작
#define RENDER(x) if(x)\
{\
cout<<x<<endl;\
}
각 줄의 끝마다 \를 사용해야 정상적으로 동작한다
#define RENDER(x) if(x){ cout << x << endl; }
가독성의 이유로 위의 방식으로 사용한다
주로 함수 매크로는 짧은 코드만 사용하는게 좋음
장점: 자료형이나 용량의 걱정 없이 자주 사용하는 코드를 아주 빠르게 코드에 적용 시킬 수 있음
단점: 컴파일 타임 이전에 코드를 삽입하기 때문에, 오류가 생겨도 컴파일러가 인지 할 수 없음, 디버깅이 어렵다
**조건부 컴파일
컴파일 전에 조건 비교를 이용하여 코드라인의 문법을 컴파일 할지 말지 결정
#if(조건) if문의 형태와 동일, 참이면 컴파일 수행
#elif(조건) else if문의 형태와 동일
#else else문의 형태와 동일
#endif 조건부 컴파일이 종료되었음을 알리는 지시자
#if(5>Num)
cout<<"5보다 크다"endl;
#elif(5<Num)
cout<<"5보다 작다"<<endl;
#else
cout<<"5이다<<endl;
#ifdef (전 처리기가 정의 되어 있다면 컴파일 수행)
#elif
#else
#endif
#ifndef (전 처리기가 정의 되어있지 않다면 컴파일 수행)