2017년 1월 2일 월요일

02. Hello, World!

02. Hello, World!

안녕, 세상아!

지금은 대부분 윈도우7/8을 사용하여 쉽게 프로그램을 설치하고 개발환경을 구성하지만, 이전에는 프로그램 하나 설치하고 실행하기까지 복잡한 과정이 있었고 매우 어려웠기 때문에 개발환경을 구성하고 나면 "해냈다!"라는 뿌듯함이 있었습니다.
그렇게 C언어 개발 환경이 준비되면 처음으로 프로그램을 작성하게 되는데 이때 C언어의 입장에서는 처음 세상에 자신을 내보이는 것이니 자신있게 이렇게 외치는 것입니다.
"Hello, World!"
이 문장이 출력되면 프로그래머는 성공적으로 준비과정을 마친 것에 격한 감동을 느끼면서 C언어와 마주하게 되는 것입니다.
이것이 유래가 되어 대부분의 프로그래밍 언어나 툴에서 처음 작성하는 프로그램이 Hello, World 예제이며 기본 예제로 함께 설치 되는 경우도 많습니다.

Hello, World 예제

다음과 같이 소스코드를 입력합니다.
#include <stdio.h>

int main(void)
{
    printf("Hello, World!\n");
    return 0;
}
그 다음 컨트롤+F5를 누르면 검은 창이 뜨면서 다음과 같이 문장이 나타납니다.
Hello, World!


1) 예제 분석

#include <stdio.h>
int main(void)
{
printf("Hello, World!\n");
return 0;
}

#include < stdio.h >

맨 첫 줄에 #include <stdio.h>는 stdio.h라는 파일을 이 코드에 포함시킨다는 뜻입니다.
실제로 stdio.h 파일을 찾아서 열어보면 안에는 알수없는 영어들이 잔뜩 들어있습니다.
맨 앞에 #을 붙이는 이유는 이것이 특수한 명령이기 때문인데 이는 우리가 작성한 코드가 처리되는 과정을 생각해보아야 합니다.
간단하게는 전처리기라는 녀석이 #이 붙은 명령을 전부 처리하면 컴파일러가 코드를 해석하는 방식입니다.
#include의 경우 전처리기가 stdio.h에 있는 내용을 전부 가져와 코드에 붙여넣기 하는 것과 같습니다.

int main(void)

C언어는 프로그램이 실행되면 가장 먼저 main을 찾습니다.
이때 main은 함수이고 입력과 출력이 있습니다.
int는 출력이 int형식임을, void는 입력이 void형식임을 나타내고 있습니다.
만약 void main(void)처럼 작성하면 입력과 출력 모두 void형식임을 나타내는 것입니다.
이때 int는 자료형을 의미하며 이 경우 출력될 값이 정수라는 것을 나타내고 있습니다.

중괄호 { }

main함수의 시작과 끝을 {와 }가 감싸고 있습니다.
중괄호는 내용들을 묶어주는 역할을 하며 중괄호로 묶인 하나의 덩어리를 블럭이라고 합니다.
여러줄의 내용을 포함해야 하는 함수나 while문, for문 등은 이러한 중괄호가 필수적입니다.

printf("Hello, World!\n");

printf는 main과 마찬가지로 함수입니다.
소괄호 안에 있는 내용을 출력하는 기능을 하며 이 경우 "Hello, World!\n"을 출력합니다.
큰따옴표(")는 문장을 나타내기 위한 장치이니 Hello, World!\n이 화면에 출력됩니다.
맨 마지막에 붙인 세미콜론(;)은 하나의 명령이 끝났다는 것을 나타내므로 줄 끝에 붙이는 것을 항상 잊지 말아야 합니다.
그런데 출력된 결과에 \n이 없는 것은 어째서일까요?
\n은 개행문자를 나타내는데 쉽게 말해 엔터입니다.
printf함수 내에서 엔터를 표현할 방법이 없으니 \n이라는 기호로 대신하여 사용하는 것입니다.

return 0;

return이라는 의미 그대로 0이라는 값을 돌려주는 것입니다.
그 값을 어디로 돌려주는가 하면 main을 실행한 지점으로 돌려줍니다.
만약 변수 A가 있고 A = main()이라고 했다면 main함수가 종료되고 그 자리에 0이 남아 A = 0이 되는 것입니다.

댓글 없음:

댓글 쓰기