#include,#define, #ifdef, #ifndef, #endif
1. 전처리기 (preprocesser)
전처리기(preprocesser)는 선행처리라는 의미로 컴파일 이전의 처리를 의미하며 소스파일은 컴파일러에 의해 컴파일 되기 직전에 실행되는 별도의 프로그램이다. 프로그램을 쉽게 변경하고 여러 실행 환경에서 쉽게 컴파일할 수 있도록 하기위해 사용된다.
- #include
#include는 이전 포스트에서 말 했듯이 예를들어 <stdio.h> 라는 헤더파일을 컴파일러가 기능을 수행하기 전에 미리 처리하는 것을 의미한다.
- #define
#define라는 지시자를 사용하여 매크로(macro)를 만들 수 있다. 매크로는 입력을 출력으로 변환하는 방식을 정의하는 규칙이다.
#define MAX(a, b) ((a>b) ? a : b)
다음은 #define을 사용하여 MAX라는 삼항 연산자를 구현한 것이다.
예전에는 매크로를 사용해 하드코딩(상수나 변수에 들어가는 값을 소스코드에 직접 쓰는 방식)한 것 처럼 사용하기도 했는데 요즘에는 잘 사용하지 않는다고 한다.
- #ifdef
#ifdef는 예를들어 #idef abc123라고 하면, if define의 의미로 abc123이 define되었을 경우 실행하게 된다.
- #ifndef
#ifndef는 if not define의 의미로 #ifdef와 반대되는 define되지 않을 경우 실행된다
이런식으로 전처리를 하게 되면 원래 입력 변수들을 새로운 변수 공간으로 전환할 수 있게 되는데, 이 공간들은 보통 입력 변수들 보다 간단한 공간으로 구성되게 되므로 문제를 풀때 발생하는 많은 변수들을 줄일 수 있게 된다.
'C' 카테고리의 다른 글
#include와 "stdafx.h" (0) | 2023.07.24 |
---|