반응형

전처리기

 

 

우리가 지금까지 만들었던 소스 코드 ".c" 라는 확장자를 가진 텍스트 파일이다.

 

이러한 텍스트 파일 컴파일러를 통해서 컴파일된 후에 실행 파일이 된다.

 

컴파일 과정을 설명하면 실제 ".c" 라는 확장자를 가진 텍스트 파일을

 

오브젝트(Object) 파일로 변환하는 컴파일 과정

 

컴파일 결과인 오브젝트 파일과 기타 라이브러리를 연결하여

 

실제 실행 파일로 만드는 링크(Link) 과정이 있다.

 

일반적으로 이 두가지 과정을 한꺼번에 묶어서 컴파일이라고 한다.

 

 

소스 코드 오브젝트 파일로 컴파일하는 과정 중에 소스 코드를 전처리(Preprocessing) 하는 과정이 있다.

 

전처리 과정은 전처리기(Preprocessor)에 의해서 처리된다.

 

-

 

※ 파일 포함하기 ※

 

#include는 지금까지 가장 많이 사용해 왔었던 전처리기이다.

 

소스 코드가 컴파일되기 전에 해당 파일을 가져와서 소스 코드에 포함시키는 역할을 한다.

 

'<'  '>' 라는 구문 표준 헤더 파일을 가지고 오는 것이고

 

(큰따옴표)' " '  ' " '라는 구문 사용자 정의 헤더 파일을 가지고 와서 컴파일하게 된다.

 

아래의 예제를 봐보자.

 

참고로 이번 예제에서는 sum.h이라는 사용자 정의 헤더 파일을 생성한다.

 

그리고 sum 헤더 파일의 확장자는 ".c"가 아니라 ".h" 이다.

 

-

 

sum.h
0.00MB

 

test34.c
0.00MB

 

 

 

 

-

 

위 예제는 두 개의 파일로 구성되어 있다.

 

하나는 test34.c에서 사용되는 헤더 파일 sum.h의 코드이고

 

다른 하나는 test34.c의 코드이다.

 

test34.c 코드의 내용 중 2행을 보면 #include "sum.h"라는 내용이 있다.

 

이 내용은 소스 코드를 컴파일하기 전 전처리기(Preprocessor)에 의해서 "sum.h" 파일의 내용을

 

해당 위치에 첨부하여 하나의 파일처럼 컴파일하라는 의미이다.

 

결과적으로 소스 코드를 컴파일할 때 다음과 같은 소스 코드가 되어 컴파일된다.

 

-

 

test35.c
0.00MB

 

 

 

-

 

 test34.c 전처리기 #include의 역할을 이해하기 위한 예제이긴 하지만

 

실제 프로그램을 개발할 때도 이와 같은 방법으로 소스 코드 파일을 나누어 개발한다.

반응형

'시작하지 말았어야 했던 것 > C언어 기본 문법' 카테고리의 다른 글

18. 매크로 함수  (0) 2021.02.01
17. 매크로 정의  (0) 2021.02.01
15. scanf() 함수  (0) 2021.02.01
14. printf() 함수  (0) 2021.02.01
13. 함수  (0) 2021.02.01

+ Recent posts