이 책에서 처음 만들어 본 First 예제는 화면에 korea라는 짧은 문자열만 출력하고 종료하는 아주 간단한 프로그램이다. 아직 C 문법 공부를 시작하지도 않은 상태이므로 이 예제의 코드까지 분석해 볼 필요는 없겠지만 길이가 짧으므로 간단하게 설명해 보도록 하자. 문법에 대해서는 관련 부분에서 체계적으로 다룰 예정이므로 당장 이 예제를 다 이해하지 못해도 상관없다. 가벼운 마음으로 C 프로그램은 어떤 모양을 가지는지 구경이나 해 보도록 하자.

First 예제는 고작 여섯 줄로 되어 있는데 빈 줄과 { } 괄호 부분을 빼고 나면 기껏 세 줄밖에 안되는 셈이다. 첫 번째 줄은 다음과 같이 시작된다.

#include <stdio.h>

이 명령은 stdio.h라는 헤더 파일을 포함하라는 뜻이며 앞으로 어떤 함수를 사용하겠다는 의사 표시이다. 헤더 파일에는 C 컴파일러가 제공하는 표준 함수들에 대한 선언이 작성되어 있는데 stdio.h를 포함함으로써 printf가 무엇을 하는 함수인지를 컴파일러가 알 수 있게 된다.

C 컴파일러는 대부분의 프로그램들이 사용하는 표준 입력, 표준 출력 함수들을 제공하는데 이 함수들을 사용하려면 함수가 선언된 헤더 파일을 포함해야 한다. 그래서 대부분의 C 프로그램은 거의 항상 #include <stdio.h>로 시작한다. 마치 편지 쓸 때 언제나 "안녕하세요"라는 인사말로 시작하는 것과 비슷하다. 더 많은 함수를 쓰고 싶으면 관련된 헤더 파일도 포함시켜야 한다.

이 책의 예제들은 stdio.h 대신 실습용으로 미리 준비해 둔 Turboc.h 헤더 파일을 사용할 것이다. Turboc.h 파일을 포함하면 stdio.h도 같이 포함되며 실습에 필요한 대부분의 표준 함수들을 사용할 수 있다. #include <stdio.h> 다음 줄은 보기 좋게 하기 위해 한 줄을 비워 두었으며 그 다음 줄에는 main 함수가 있다.

void main()

main은 함수의 이름인데 C 프로그램은 항상 main 함수에서부터 실행을 시작한다. main 다음에 붙어 있는 괄호는 main이 함수라는 것을 알려주는 역할을 하며 void는 이 함수의 리턴값이 없다는 뜻이다. Dev-C++의 경우는 int main()으로 되어 있는데 이 컴파일러는 main 함수가 정수값을 리턴하도록 되어 있다. void main()이란 곧 여기가 프로그램의 시작점이라는 뜻이다. main 다음에는 { }괄호가 있는데 이 괄호는 함수의 시작과 끝을 표시한다. { } 안이 곧 함수의 본체이며 여기에 실행하고 싶은 명령을 작성한다.

printf("korea\n");

main 함수 안에는 printf 명령이 작성되어 있는데 printf는 문자열을 화면으로 출력하는 함수이다. 겹 따옴표안에 출력하고 싶은 문자열을 적어 준다. \n은 확장열이라는 것인데 문자열 출력 후 개행하라는 뜻이다. Enter코드를 따옴표안에 바로 표기할 수 없기 때문에 이런 특별한 문자를 사용한다. C의 모든 명령은 반드시 세미콜론으로 끝나도록 되어 있으므로 printf 명령의 끝에도 세미콜론을 붙였다.

이 예제의 전체적인 구조는 다음과 같다. 결국 First 예제는 선언이나 프로그램의 시작점 등의 형식적인 구문 외에는 문자열을 출력하는 printf 함수밖에 없는 셈이며 그래서 이 프로그램은 문자열만 출력하고 종료하는 간단한 프로그램인 것이다. 물론 main 함수 안에 다른 명령을 작성하면 더 복잡한 프로그램이 될 수도 있다.

사용자 삽입 이미지
이번에는 이 예제를 수정해 보자. 아직 문법은 모르지만 대충 구조를 파악했으니 몇 가지는 수정할 수 있을 것이다. "korea"라는 문자열 대신 "Program"을 출력하도록 해 보자. 문자열을 출력하는 부분이 printf이므로 이 함수의 괄호안에 있는 문자열만 printf("Program\n")으로 바꾸면 된다.

printf를 여러 번 호출하면 여러 개의 문자열을 화면으로 출력할 수도 있고 따옴표안에 한글도 사용할 수 있다. 다음에 커서 제어문을 배우면 원하는 위치에 문자열을 출력할 수도 있으며 입력 명령을 사용하면 사용자에게 정보를 입력받을 수도 있을 것이다.

Posted by 테티스
,