C언어의 탄생
C언어는 1972년에 데니스 리치가 UNIX 시스템에서 사용하기 위해서 켄 톰슨이 만든 B언어를 발전 시켜서 만든 언어이다.
초기 C언어는 하드웨어 상관 없이 사용할 수 있는 언어를 목적으로 만들어 졌고 현재에도 계속해서 개선 되어가고 있다.
C언어의 장점은 다음과 같이 정리할 수 있다.
1. 시스템 프로그래밍이 가능하다.
운영체제 OS(operating system)를 개발할 목적으로 만든 언어이므로 하드웨어를 제어하는 시스템 프로그래밍이 가능하다.
2. 이식성을 갖춘 프로그램을 만들수 있다.
이식성 portability 이란 기종이 다른 컴퓨터에서도 사용할 수 있는 프로그램으로, 표준을 지켜 만들면 컴퓨터의 종류가 바뀌더라도 같은 프로그램을 계속해서 사용할 수 있따. 표준에 정의되지 않은 문법을 사용한 프로그램과는 다르게 이식이 좋다고 볼 수 있다.
3. 함수를 사용하여 개별 프로그래밍이 가능하다.
함수를 이용해서 기능별로 프로그램이 가능하기 때문에 오류 발견 수정이 용이하며 이는 개발후 유지보수에도 많은 이점으로 작용한다.
비주얼 스튜디오의 설치 및 사용법에 대해서는 다른 챕터에서 소개된 내용을 참조 하면 된다.
비주얼 스튜디오의 VC++ 컴파일러를 사용하면 메뉴 선택을 통해 쉽게 컴파일이 가능하지만, 컴파일 과정을 알고 있다면 파일 생성 구조나 다른 참조 파일들의 생성등이 어느 시점에서 일어나는지 알 수 있다.
영어로 되어 있지만 단순하게 본다면
1. 소스파일 : 우리가 작성하는 영역이라고 볼 수 있다.
2. 전처리 pre-processing : 전처리 지시자에 따라 소스파일을 가공하는 과정
설명으로 보면 확 와닿지 않지만 보통 #include 가 바로 전처리 지시자 이다. 미리 구현에 필요한 기능이나 변수를 정의 하고 들어 간다고 생각하면 편하다.
3. 컴파일 compile : 전처리 까지 끝난 파일을 컴파일하게 되면 개체파일 object file이 된다. 개체파일은 cpu가 해석 가능한 명령어들로 이루어진 기계어 파일로 이제부터 우리 사람눈으로 보면 이게 무슨 외계어일까 하는 느낌으로 변하게 된다. 이부분은 우리가 단순히 비주얼 스튜디오의 컴파일(ctrl + F7)기능을 통해서 비교 해보면 생성 파일차이를 볼 수 있다.
컴파일 결과를 보면 위 사진 처럼 소스 obj 파일 object 파일이 생성 된것을 볼 수 있다.
그렇다해서 바로 실행 가능한 것이 아니다. cpu가 인식이 가능할 뿐 우리가 사용하는 윈도우 mac linux등에서 인식할 수 없다. 이걸 해줄수 있게 해주는 과정이 바로 링크 link에서 이루어진다. 이때도 폴더내에 생성된 파일들의 차이를 통해서 무언가 바뀌는지 알 수 있다.
4. 링크 link : 운영체제에서도 인식할 수 있도록 우리가 만든 object파일과 startup 코드를 라이브러리에서 불러와 결합하는 과정을 진행한다. 이과정을 지난후에 우리가 평소에 보는 실행 파일 exe 나 exe를 실행할 수 있는 recipe 파일이 생성된다.
링크 파일과 함께 exe 형태가 될수 있는 recipe 파일이 생성 되어 있으며 비주얼 스튜디오에서 우리간 짠 코드의 결과화면을 볼 수 있다.
이처럼 전처리 과정이나 라이브러리에 따라 생성되는 파일이나 과정이 조금 바뀔수 있지만 이 큰틀 내에서 우리 코드가 정상적으로 실행 된다는 것을 확인 할 수 있다.
'프로그래밍 study > C언어' 카테고리의 다른 글
CH4 산술 관계 논리 연산자 (0) | 2022.03.24 |
---|---|
CH3-2 데이터 입력 (0) | 2022.03.22 |
CH3 변수 (0) | 2022.03.21 |
CH2 C언어 상수와 데이터 출력 (0) | 2022.03.18 |