- 전처리기 : Compile전에 코드를 변헝, CPU 연산 x
#include
- <> : 컴파일러 설정의 시스템 디렉터리에서 검색
- "" : 현재 프로젝트 폴더에서 검색
매크로와 __inline 함수
- 실제로는 함수가 아니라 한 행 혹은 여러 행으로 기술할 수 있는 구문
- 함수를 호출할 때 overhead(인자 복사 등)가 발생하기 때문에 매크로 사용(내용이 적을 때)
- 인자의 형을 정하지 않기 때문에 위험, 사용 자제를 추천 -> __inline 함수로 대체
#define ADD(a, b) (a + b) // 괄호를 하지 않으면 연산자 우선순위가 엇갈릴 수 있음
#define STRING(a) #a
#define PASTER(a, b) a##b
int main(void)
{
printf("%d\n", ADD(3, 4));
int nData = 10;
printf("%d\n", PASTER(nDa, ta)); // 인자가 합쳐져서 nData와 같음
printf("%s\n", STRING(nData)); // "nData"가 출력
return 0;
}
조건부 컴파일
- 상수 정의에 따라 실제로 번역되는 소스코드가 달라지도록 구성하는 것
- #ifdef __, #else, #endif