본문 바로가기

Programming/C

C Study 01 - 기초 1

C에 기초를 탄탄하게 다지기 위하여 블로그를 통해 설명을 이어나갈 생각이다.

그러면 처음 기초부터 살펴보자.


프로그램이란 ?

간단히 설명해서 

input -> program -> output

특정 input을 특수한 연산을하여 output을 뽑아내는 것이다. 이러한 프로그램은 여러가지로 만들어 낼 수 있는데, 대표적으로 우리가 흔히 쓰는 C프로그램 언어이다.


그렇다면 C란??

1972년 벨 연구소의 데니스 리치(Dennis Ritchie)에 의해 만들어졌다. 데니스 리치는 UNIX 운영체제의 개발을 맡고 있었는데 운영체제는 그 특성상 하드웨어를 직접 제어할 수 있어야 했다. 또한 당시의 컴퓨터 환경이 지금과는 달라 CPU의 속도나 메모리의 용량이 충분하지 않았기 때문에 프로그램의 크기는 작아야 했고 속도는 빨라야했다................

 - 출처 : winapi.co.kr 

주저리주저리... 이걸 알고 싶은게 아니다...

C는 절차지향적 언어이다. 기계처럼 하나하나 읽어 나가는 형식인 것이다.

컴퓨터는 01011101 과 같이 기계어를 통해 작동한다. 그 기계어는 가독성이 떨어질 뿐만 아니라 개발하는데도 단점이 될 수 밖에 없다. 따라서 데니스 리치가 개발한 것이 C언어이다. 


C언어의 구동 원리

단순하게 설명 하자면 이렇다.

그림을 자세하게 설명하자면...


1. 먼저 일반 C코드를 작성한다.

2. C코드를 컴파일을 통해 이 언어를 기계어로 변환 시켜 object파일을 생성한다.

3. object파일들을 링크(링커)를 통하여 windows 환경이나 Linux환경에서에 맞는 dll파일들을 결합 시킨다.

  (때문에 프로그램을 Linux환경 혹은 Windows 환경을 따로 구분해서 개발 하는 것이다.)

4. 최종적으로 exe파일이 뽑아져 나온다.


그러나 이러한 과정속에서 global 변수나, static 변수는 컴파일하는 동안에 선언이 되는 것이 있고 실행 중에 선언 되는 것들이 있으니 참고.


※ window 와 windows 의 차이.

windows는 windows 시리즈의 운영체제 자체를 말하며,

window는 하나의 창을 이야기 한다.

'Programming > C' 카테고리의 다른 글

gotoxy 함수 구현 및 방향키 값  (0) 2012.07.25
C Study 02 - 연산자  (0) 2012.05.18
C Study 01 - 기초 2  (3) 2012.05.02
Compile 과정  (0) 2012.05.01
Memory 구조  (1) 2012.05.01