본문 바로가기
C언어

C언어 기초 2. C언어 코드 맛 보기

by algosketch 2019. 7. 27.

 본격적으로 C언어를 공부하기에 앞서 가장 간단한 C언어 코드 하나를 소개하겠다.

#include <stdio.h>

int main(void)
{
    printf("Hello, World!");
	
    return 0;
}

 글 쓰는 여건상 결과를 출력하지 못 하는 점 양해 바란다. 위 코드의 출력은 다음과 같다.

Hello, World!

 당장 이 코드를 전부 이해할 필요는 없다. 다만 어떤 구조인지만 대략적으로 살펴보자. 위의 코드는 두 가지 부분으로 나눌 수 있다. #include <stdio.h>부분과 main이라는 이름을 갖고 중괄호{}로 둘러싸여 있는 부분이다. #include <stdio.h>는 이 프로그램이 stdio.h라는 도구를 포함(사용)하겠다는 뜻이다. 입문자들이 자주 오타를 내는 부분으로 studio가 아니라 stdio인 것에 유의하라. (STanDard Input Output) printf도 stdio.h에 담겨 있는 도구이다. 그리고 {}로 둘러싸여 있는 부분은 코드의 몸통에 해당한다.

 Hello, World!를 출력하게 만드는 코드는 printf("Hello, World!"); 부분이다. printf("") 안에 있는 문자열을 출력하라는 의미를 가진다. 이러한 한 줄의 명령이 끝났음을 알리기 위해서 문장의 끝에 세미콜론(;)을 붙이게 된다. 이 코드들을 감싸고 있는 int main(void){...}를 함수라고 부른다. 수학시간에 함수는 변수 x에 따라 결과 y의 값이 결정된다고 배웠다. int main(void) 에서 x의 역할을 하는 게 void이다. 여기서는 x의 값이 필요하지 않아 지정해주지 않았다. void를 넣어주거나 비어있는 상태로 둬도 된다. main은 함수의 이름이다. 함수를 f(x)라고 치면 f에 해당하는 부분이다. 하나의 프로그램에서 여러 함수를 만들 수 있지만 특이하게도 main함수는 반드시 하나가 필요하고 두 개 이상이 되면 안 된다. 프로그램의 시작과 끝이 main함수에서 이루어지기 때문이다. 컴파일러도 프로그램의 시작시키기 위해 main함수를 찾는다. 함수의 앞에 붙는 int는 함수의 반환형이다. 함수에 x값을 넣었을 때 반환되는 y의 값이 정수인지 실수인지 등을 알려주는 역할을 한다. 지금은 이해하지 않아도 된다. 마지막으로 return 0;는 반환되는 y값이 0이라는 의미이고 함수의 끝을 의미한다. main함수의 끝은 프로그램의 끝을 의미한다. 왜 함수가 값을 반환하고 어떤 의미를 갖는지는 나중에 설명하도록 하겠다.

 Hello, World!를 출력하는 간단한 코드임에도 이 프로그램을 만들기 위해 필요한 다른 코드들이 많다고 느껴질 수 있다. 한 가지 위로를 해주자면 java보다는 짧다. python코드로는 print("Hello, world!")지만 하지만 그리 긴 코드가 아니고 C언어를 공부하다 보면 아무 문제 없을 정도로 익숙해질 것이다. 예상하겠지만 Hello, World! 두 줄을 출력하기 위해서 두 배 길이의 코드가 필요한 것도 아니다.

 앞으로도 이렇게 짧은 글들로 강의를 채울 생각이다. 강의의 회수가 많아지긴 하겠지만 최대한 줄여보도록 하겠다. 필체도 글을 짧게 쓰기 위해 반말을 사용했다.