우선 #define 매크로를 어떻게 사용하는지 알아볼까요? #define은 컴파일 전에 수행되는 전처리기(선행 처리기, preprocessing ) 단계에서 기호 상수를 리터럴로 치환함으로써 수행됩니다. 무슨 의미인지 코드를 보면서 설명하겠습니다.
#define PI 3.14 main() { float result, result2; result = PI * 2.7; result2 = PI * 2.7 * 2.7; }
사람이 작성한 코드를 컴퓨터가 바로 해석하는 것이 아닙니다. 해석하기 전에 컴퓨터가 먼저 코드를 처리하는 과정을 한번 거칩니다. 이러한 선행 처리 과정을 거친 후 결과로 나온 코드를 컴퓨터는 컴파일합니다.
이 코드를 선행 처리하면 다음과 같은 임시 파일이 생성됩니다.
main() {
float result, result2;
result = 3.14 * 2.7;
result2 = 3.14 * 2.7 * 2.7;
}