티스토리 툴바

제 1장 : C 언어 들어가기 _ 01

View Comments

1. C 프로그래밍 첫 걸음

C 언어를 학습하기 전에 우리가 정복하고자 하는 C언어를 배워서 무엇을 할 수 있는지부터 살펴보도록하자.

수업을 시작하면 항상 학생들에게 던지는 질문이 있다.

" 과제를 위해서 컴퓨터가 있어야 하는데 집에 컴퓨터가 없는 사람은 손을 들어보세요."

이런 질문을 던지면 학생들은 웃음보를 터뜨리고 만다. 텔레비전이 없는 집이 없듯이 컴퓨터 역시 집집마다 있는 세상에 살고 있다. 하지만 컴퓨터는 텔레비전과 같은 단순한 기계가 아니기 때문에 컴퓨터에서 동작하는 여러가지 프로그램들을 설치해야만 원하는 작업을 할 수 있다. 우리가 설치하는 이러한 프로긂들을 만들기 위한 도구가 바로 C 언어이다.

우리는 C를 흔히 C 언어라고 하는데 이는 컴퓨터와의 의사소통을 하기 위한 수단으로 C 언어가 탄생하였기 때문에 언어라는 명칭을 사용한다.

외국인과 대화를 하기 위해서는 어떻게 해야할까?

우리가 사용하는 언어로는 외국인과의 대화가 불가능하다. 외국인과 대화를 하기 위해서는 그 나라 언어를 사용해야 한다.
외국인들이 한국말을 이해하지 못하듯이 컴퓨터 역시 우리가 사용하는 언어(자연어)를 이해 하지 못한다. 왜냐하면 컴퓨터는 스위치의 켜짐(on)이나 꺼짐(off)에 의해서만 동작하고 이 두 가지 상태를 0과 1이라는 비트 형태로 저장하므로 0과 1로 구성된 기계어 코드 상태만 이해하기 때문이다.

외국인과의 의사소통을 위해서 문법을 학습하듯이 컴퓨터와의 의사 소통을 위해서 C 문법을 습득하여 컴퓨터로 원하는 작업을 할 수 있는 프로그램을 작성해야 한다.

C 언어는 사람의 언어를 컴퓨터가 이해할 수 있는 형태로 바꿔주기 위한 프로그램을 표현하는 언어이다.


2. C 프로그래밍 절차

C 언어를 이용해 프로그램을 작성하기 위해서는 먼저 C 언어문법 구조를 익혀야 하고, 그러기 위해서는 다양한 예제를 직접 작성해보는 것이 가장 좋다. C 언어로 예제를 작성하기 위해서는 다음과 같은 절차를 거쳐야 한다.

C 언어 문법을 본격적으로 학습하기에 앞서 C 언어로 프로그램을 어떻게 만들어서 실행해야 하는지 전반적인 과정을 살펴보면 크게 편집(edit), 컴파일(compile), 링크(link), 실행(execute) 4단계로 이루어진다. 그런데 각 단계가 항상 순조롭게 진행되는 것은 아니다. 컴ㅏ일이나 링크 단계에서 오류가 발생하면 다음 단계로 진행하지 못하므로 실행 가능한 파일을 얻기 위해서는 오류를 수정해야 한다. 각 단계에서 어떤 작업들이 일어나는지 자세히 살펴보자.

2_1 편집 단계

프로그래머가 C언어의 문법에 맞게 프로그램을 작성한 후 파일로 저장하는데 이렇게 작성된 파일을 소스 파일이라 한다. 소스 파일을 생성하는 편집 단계에서는 편집기가 필요하다. 윈도우에서 기본으로 제공하는 메모장을 이용할 수도 있지만 나는 비주얼 스튜디오에서 제공하는 편집기를 사용할 것이다.

어떤 편집기를 사용하든 C 언어 소스 파일을 작성한 후 저장할 때는 C 언어 소스 파일임을 의미하는 cpp 확장자를 꼭 붙여야 한다.


2_2 컴파일 단계

컴파일 단계에서는 편집 단계에서 작성한 소스 파일이 C 언어 컴파일러에 의해 c 언어 문법에 맞는지를 먼저 검증한다. 그런 다음, 문법적 오류가 없음이 확인되면 소스 파일을 기계어 상태로 변경에 오브젝트 파일을 만들어 주는데, 오브젝트 파일은 obj 확장자가 붙는다.


2_3 링크 단계

프로그램에서 자주 사용되는 로직을 미리 정의해 제공하는 것을 라이브러리라고 한다. 한 개인이 프로그램에 대한 모든 내용을 기술하는 것은 불가능하므로 이러한 라이브러리에서 제공하는 정보(함수와 데이터 구조)를 사용하는데, 이들 라이브러리에서 제공하는 형식에 맞게 올바르게 사용하였는지를 링크 단계에서 검사하여 올바르게 참조되었으면 컴파일 단계에서 만들어진 오브젝트 파일을 실행이 가능한 파일로 만들어 주는데 실행 파일은 exe 확장자가 붙는다.


2_4 실행 단계

링크 단계까지 성공적으로 진행해서 생성된 실행 파일(확장자가 exe인 파일)은 컴퓨터에 의해 실행 가능하다. 이 실행 파일을 실행시키려면 콘솔창에서 직접 실행 파일을 입력할 수 있지만, 대부분 비주얼 스튜디오와 같은 툴에서 제공되는 메뉴를 선택하여 실행 시킨다. 실행 결과는 콘솔창에 나타난다.



3. C 프로그램의 구조


다음은 이번 장에서 작성할 예제로서 "Hello C Programming World!" 라는 메시지를 모니터 화면에 출력하는 프로그램이다.

 예제 1-1 간단한 메시지 출력하기

 01 /* 간단한 메시지 출력하는 프로그램 */
 02 #include <stdio.h>
 03 int main()
 04 {
 05      printf("Hello C Programming World! \n");
 06
 07      return 0;
 08  }

위 예제는 기본적인 요소로 이루어진 프로그램이다. C 프로그램의 구성 요소들에 대해서 자세히 살펴보도록 하자.


3.1 int main()

위 문장은 main() 함수를 정의하는 문장이다. main() 함수에 대해서 설명하기에 앞서서 C 프로그램에서 함수의 역할과 함수에 대한 개념부터 살피고 넘어가자.

함수란 무엇일까? 저자는 초등학교 때 함수에 대한 개념을 어떤 기능을 위한 도구로 배웠던 기억이 어렴풋이 난다.
함수는 데이터를 입력받아 처리한 후 결과 값을 구해주는 일종의 블랙박스로, 특정한 기능을 수행하기 위하여 작성된 독립적인 코드들의 집합이다.

C 프로그램은 함수들의 집합이라 할 수 있다. 한마디로 C 언어로 작성한 프로그램은 여러 개의 함수로 이루어져 있다. 일반적인 프로그램 언어에서는 함수를 ()로 인식한다.

[예제 1-1]의 main을 살펴보면 ()를 가지고 있기에 함수라는 것을 알 수 있다. 위 예제는 C 프로그램에서 가장 기본이 되는 함수인 main() 한 개로 작성한 C 프로그램이다. C 언어의 main() 함수는 다른 함수들과 차별화된 남다른 특징이 있다.



main() 함수의 특징

ⓐ C 컴파일러가 프로그램의 시작으로 인식하는 함수이다.

ⓑ C 로 작성한 프로그램은 반드시 가져야 하며 한 개만 존재해야 한다.

ⓒ C 프로그램을 실행시키면 main() 함수를 찾아 함수 내부에 기술된 문장들을 순차적으로 수행한다.



앞으로 우리가 작성할 프로그램에는 항상 main() 함수가 등장하는데 함수의 정의 형태로 등장한다.

모든 함수는 반드시 자료형을 지정해야 하는데 자료형은 함수 이름 앞에 붙인다. 위 예에서는 main() 함수 앞에 int 라는 자료형을 지정하였다. 아직 자료형에 대해 학습하지 않았지만, int란 자료형을 간단하게 설명하면 함수가 정수(소수점이 없는 수치 데이터) 값을 갖도록 할 경우에 붙이는 자료형이다. 자료형에 대해서는 2장에서 보다 자세히 학습할 것이다. 지금은 결과 값이 정수형으로 구해지게 하기 위해서 main() 함수 앞에 int라는 자료형을 지정한 것이라는 것만 기억하기 바란다.



3.2 그룹화를 위한 {}


C 프로그램을 실행시키면 main() 함수를 찾아 함수의 몸체 부분에 기술된 내용들을 기술해 놓은 순서대로 실행하는데 C 컴퍼일러는 함수의 몸체를 '{'와 '}' 기호로 인식한다.

main() 함수의 시작을 알려주기 위해서 { 기호가, 끝을 알려주기 위해서 } 기호가 사용된다,

C 로 작성한 프로그램을 실행시키면 main() 함수의 {와 } 사이에 기술한 내용이 차례대로 실행된다고 하였다. 컴퓨터에게 시키고자 하는 일을 {와 } 사이에 기술하는데 이 기술 과정이 바로 프로그램을 작성하는 과정이다.







이 글은 성윤정, 임재열, 황보택근이 공저한 가벼운 마음으로 배우는 C PROGRAMMING 의 글입니다. ( 개인적으로 외우기 위해 적은 것뿐이니 불펌은 금지합니다.)
저작자 표시 비영리 변경 금지

'C언어' 카테고리의 다른 글

제 1장 : C 언어 들어가기 _ 01  (0) 2011/07/25

0 Comments (+add yours?)

0 Tracbacks (+view to the desc.)

Newer Entries Older Entries