본문 바로가기
프로그래밍/C

[C언어] 전처리기와 main함수, 그리고 printf

by 알용 2012. 5. 3.
반응형

머리말

이제부터 본격적으로 C언어 코드를 작성해본다.
당장은 이해가 가지 않아도 좋으나 그 틀에 익숙해지는 것이 중요하다.


지난 강좌글에서 프로젝트를 생성하고 소스파일인 main.c 를 만드는 것까지 했었다.
코드 입력창을 띄웠으니 코드를 입력할 차례다.
우선, 묻지도 따지지도 말고 아래 코드를 입력해보기 바란다.



해석에 들어가기에 앞서서 줄(line)에 대한 개념을 알아둘 필요가 있는데,
#include <stdio.h> 가 적힌 부분이 1번째 줄, 그 아래 아무런 내용이 없는 줄이 2번째 줄, 그 아래가 3번째…n번째 줄이다.
위 사진의 프로그램은 총 6줄의 코드로 구성되어 있는 것이다.


1번째 줄 부터 해석에 들어가도록 하겠다.
#include <stdio.h>
#으로 시작하는 문장은 모두 전처리기 또는 선행처리기라고 부른다.
컴파일에 대해 저번에 설명했는데 다른 부분은 프로그램이 실행되면서 처리되지만 전처리기는 컴파일 할 때 처리된다.
include라는 영단어를 한국어로 번역하면 포함하다라는 뜻인데 stdio.h 라는 파일을 이 프로그램에 포함하겠다 라는 의미이다.
한줄로 요약해서 컴파일러에게 "stdio.h 라는 파일에 담겨 있는 내용을 쓰겠습니다" 라고 알려주는 것이다.

3~6번째 줄은 main함수 영역인데 이에 대한 설명을 하기 전에 엔트리 포인트에 대해 알아야 한다.
엔트리 포인트란 프로그램의 시작점 또는 그 영역을 뜻하는데 말 그대로 프로그램이 실행되면 가장 먼저 처리되는 부분이다.
눈치 챘겠지만 Win32 콘솔 애플리케이션 환경에서 만들어진 프로그램의 엔트리 포인트는 바로 main함수이다.
main 함수가 프로그램의 시작점이라는 것은 알겠는데 이제 또 걸리는 것이 바로 void 다.
void 는 C언어의 자료형 중 하나인데 아직 배우기에는 시기상조이니 써주어야 한다라고만 익히고 있길 바란다.

4번째 줄과 6번째 줄을 보면 중괄호가 있는 것을 볼 수 있다.
C언어에서 구현된 함수들은 항상 중괄호를 여닫아야 하고 해당 중괄호 블럭 안에 명령문을 기술해야 한다.
중괄호에 대한 설명은 나중에 다시 한번 하게 될테니 { 는 함수 블럭의 시작을 알리고 }는 함수 블럭의 끝을 알린다고 기억해라.

5번째 줄은 4,6번째 줄에 있는 중괄호에 싸여져 있는데 이것이 바로 main 함수가 실행되면 처리되는 명령문이다.
print라는 영단어를 번역하면 출력하다라는 뜻이고 이 또한 말 그대로 화면에 출력해주는 기능을 가지고 있다.
큰 따옴표 안에 싸여져 있는 Hello World!!가 화면에 출력될 것이다.
그리고, printf 명령문 맨 끝에 세미콜론(;)이 적혀져 있는 것을 볼 수 있는데 C언어에서는 모든 명령문의 끝에 ; 를 붙여야 한다.

위 코드를 다 적고 설명을 읽었다면 Ctrl+F7 을 눌러 컴파일을 해보자.
C언어 문법에 맞게 코드를 입력했다면 Ouput Window 에 다음과 같이 표시될 것이다.

컴파일을 하게 되면 기계어로 번역된 파일이 생성된다고 저번에 설명했는데 main.obj 파일이 바로 그것이다.
0 error, 0 warning 이니 문제될 것이 없다는 얘기이다.
F7을 눌러 Build를 하면 실행 파일이 생성될 것이다.
일일이 파일을 찾아가 실행시킬 필요 없이 Ctrl+F5를 누르면 생성된 프로그램이 실행된다.


다음과 같이 나오면 정상적으로 프로그래밍된 것이다.
다음 설명으로 들어가기 전에 Hello World 대신에 자신의 이름을 넣거나 원하는 문자열을 입력하여
화면에 출력해보는 시간을 가지도록 하자.



위 6줄의 코드를 설명했지만 한 가지 빼먹은 것이 있다.
printf 명령문의 안에 있는 \n인데 개행(한 줄 띄우는 것)의 역할을 한다.(키보드에 따라 슬래시의 반대 모양 또는 원화가 표시)
\(역슬래시)와 영문자를 조합하는 형태를 제어문자라고 하는데 \n 또한 제어문자 중 하나이다.
\n 말고도 여러 제어문자가 존재하지만 추후에 설명할 것이고 \n이 개행의 역할을 하고 있다는 것을 기억하길 바란다.
이해가 되질 않는다면 \n을 지우고 실행해보면 금세 느낄것이다.


예제

화면에 다음과 같이 출력해보자.
----------------
안녕하세요.
저는 홍길동입니다.
나이는 18살입니다.
----------------

 

반응형