728x90

간단한 C 언어 예제

C 언어로 만들어진 프로그램은 다소 특이한 모습을 하고 있고, 이상한 기호들이 여기저기서 사용됩니다. 하지만, 이 강좌를 읽어 나가다 보면 이런 C의 특이한 모습과 기호들도 점차 낯설지 않고 친숙해질 것입니다. 또는 C에서 파생된 많은 언어에 이미 익숙하다면 C 소스가 편하게 느껴질 것입니다.

간단한 C 예제 프로그램을 하나 살펴봅시다. 예제 2.1에 있는 이 프로그램을 통해서 C 프로그래밍의 기본적인 특징들을 설명하겠습니다.

예제 2.1 - first.c 프로그램

#include <stdio.h>
int main(void) {
    /* 이 프로그램은 간단한 출력문입니다. */
    int num;
    num = 1;
    printf("안녕 ");
    printf("세상! \n");
    printf("num에는 %d이 저장되어 있습니다. \n", num);
    return 0;
}
CodeHighlighter

이 프로그램은 화면에 어떤 문장을 출력해주는 일을 합니다. 어떤 문장을 출력하는지 알아보기 위해 프로그램을 실행시켜 봅시다. 먼저, 텍스트 에디터 혹은 IDE를 이용해서 예제 2.1에 있는 텍스트가 작성된 파일을 만듭니다. 파일의 확장자는 .c로 지정해야 합니다. 필자는 first.c를 파일의 이름으로 사용하겠습니다. 작성이 끝났다면 프로그램을 컴파일해서 실행하면 됩니다.

모든 과정이 끝났다면, 다음과 같은 결과를 얻을 수 있을 것입니다.

안녕 세상!
num에는 1이 저장되어 있습니다.

프로그램의 전체적인 코드를 한 번 짚어본 뒤, 프로그램에서 이상해 보이는 몇 라인에 관해서 설명하겠습니다.

프로그램 수정

일부 환경에서는 프로그램을 실행하면 별개의 윈도우를 하나 띄워서 출력 결과를 내보내고 프로그램의 실행이 끝나면 그 윈도우를 자동으로 닫습니다. 그래서 위의 결과를 보지 못했는데도, 프로그램이 바로 종료되었을 수 있습니다. 만약 이와 같은 상황이라면, 사용자가 어떤 키를 누를 때까지 윈도우가 닫히지 않도록 return 문 앞에 다음 코드를 추가해주면 됩니다.

getchar();

이 코드는 키가 눌릴 때까지 프로그램을 대기시켜 윈도우가 닫히지 않도록 만들어줍니다.


위 예제에 대한 설명

위 프로그램의 소스 코드를 하나씩 살펴보도록 합시다. 먼저, 무슨 일이 일어났는지 감을 잡을 수 있도록 각 라인의 의미에 초점을 맞춘 뒤, 더 깊이 이해할 수 있도록 상세한 부분에 초점을 맞추겠습니다.

전체적인 코드 보기
여기서는 프로그램의 각 라인을 간단히 알아보도록 하겠습니다.

#include <stdio.h>

또 다른 파일을 추가합니다.
이 라인은 컴파일러에 stdio.h 파일에 있는 정보를 읽어오라고 지시합니다. stdio.h 파일은 모든 C 컴파일러 표준 패키지에 들어있으며, 키보드 입력과 화면 출력을 지원합니다.


int main(void)

함수의 이름
C 프로그램은 하나 이상의 함수(function)로 구성됩니다. 함수는 C 프로그램을 구성하는 기본 모듈이며, 이 프로그램은 main이라는 하나의 함수로 구성되어 있습니다. 괄호는 main()이 함수라는 것을 나타내며, intmain() 함수가 정숫값을 반환하고 있음을 알립니다. 또한, voidmain() 함수가 전달 인자를 필요로 하지 않는다는 것을 나타냅니다. 지금은 intvoid가 표준 ANSI C에서 main()을 정의하는 데 필요한 요소라는 것만 기얻해두면 됩니다. (만약, ANSI C 이전의 컴파일러를 사용하는 경우에는 void를 생략해야 합니다.)


/* 주석 */

주석
기호 /**/는 주석을 생성할 때 사용합니다. 주석은 프로그램에 영향을 끼치지 않으며, 가독성을 높여주는 용도로 사용됩니다.


{

함수의 시작
중괄호 {는 함수를 구성하는 문장들의 시작을 나타내며, 중괄호 }로 끝을 냅니다.


int num;

선언문
이 문장은 num이라는 이름의 정수형 변수를 사용할 예정이라는 것을 알립니다.


num = 1;

대입문
num이라는 변수에 값 1을 대입합니다.


printf("안녕 ");

함수 호출문
이 문장은 '안녕 '이라는 문장을 화면에 출력해주며, 커서는 같은 라인, 문장이 끝난 부분에 그대로 남게 됩니다. 여기서 printf()는 표준 C 라이브러리에 들어있으며, 이것을 함수라고 부릅니다. 또한, 프로그램에서 함수를 호출하는 것을 함수 호출이라고 합니다.


printf("세상! \n");

또 다른 함수 호출문
두 번째 printf() 함수 호출은 앞에서 출력한 문장의 끝에 '세상!'을 붙여서 출력합니다. \n 다음 라인으로 커서를 이동시키는 기호입니다.


printf("num에는 %d이 저장되어 있습니다. \n", num);

여기서 사용된 printf()는 큰따옴표로 둘러싼 문장의 중간에 num의 값을 출력합니다. %dnum의 값을 어느 위치에, 어떤 형식으로 출력할지 컴퓨터에 지시해주는 문자입니다.


return 0;

리턴문
C 함수는 자신을 호출한 곳에 리턴(return)할 수 있습니다. 지금은 main() 함수에 대해 ISO/ANSI C가 요구하는 사항이라고 생각하면 됩니다.


}

함수의 끝
앞에서 말한 대로, 중괄호 }와 함께 함수가 종료됩니다.

728x90
728x90