공부하자/C언어

C언어 문법 공부 1장 [C언어는 어떻게 생성되는가]

YoBot 2016. 11. 19. 04:52


3. C언어는 어떻게 생성되는가?


이제 C언어 프로그램이 어떻게 실행되어 지는 가를 알아봅시다.

C언어로 프로그램을 만들면 실행파일(.EXE)을 만들 수가 있습니다.

실행파일이 만들어지데는 다음과 같은 과정을 거칩니다. 


                    (텍스트 에디터)                      (선행처리기) 

(1)소스 코드 -------------> (2)소스 파일 ------------> (3)선행처리기 지시어가

                                                                                                번역된 소스 파일


          (컴파일러,라이브러리)                             (링커)

        -------------------->(4)목적 파일 -----------> (5)실행파일


(1) 소스 코드 (Source)

프로그램의 내용 자체를 소스 코드라고 합니다. 


(2) 소스 파일 (Source file)

소스 코드를 택스트 파일에 기술하여 만들어진 파일을 소스 파일이라고 합니다. C언어의 소스 파일은 확장자가 .C입니다.

C언어 프로그램 만드는 가장 첫번째 과정이라고 할 수 있죠. 


(3) 선행처리기 지시어가 번역된 소스 파일

C언어 프로그램 내에는 여러가지 지시어 들이 있는데 이건 C언어 문법과는 별게이고 번역도 컴파일러가 하지 않습니다.

이걸 번역하는 프로그램을 선행처리기라고 합니다. 


(4) 목적 파일 (Object file)

지시어가 번역된 소스 파일은 다음으로 컴파일러라는 프로그램에 의해 기계어로 번역 됩니다. 이 번역된 파일을 목적 파일이라고 하고, 확장자는 .OBJ가 됩니다. 

그러데 여기서 이상한 점이 있죠?

기계어로 번역하면 실행할수 있을 건데 왜???????? 실행파일을 만들지 않고 목적파일이라는 만들까요?

하지만 기계어로 번역되었다고 해서 실행할수는 없습니다.

실행파일이 되기 위해선 런타임 라이브러리 라는 것이 목적 파일과 합쳐져야 하기 때문이죠. 이 런타임 라이브러리가 무엇인지는 나중에 설멸하기로 하고 그냥 런타임 라이브러리라는 것이 합쳐져야 한다는 것만 알아두세요. 


(5) 실행 파일 (Executable file)

목적파일은 위에서 말한 런타임 라이브러리와 합쳐져서 실행파일이 되는데, 이때 합쳐주는 프로그램을 링커라고 합니다.

링커에 의해 목적 파일은 실행파일이 되죠.

그럼 실행할수가 있게 됩니다.