본문 바로가기

프로그래밍/C 기초

[C언어 강좌] #2 - HelloWorld 분석

안녕하세요

저번에 HelloWorld를 출력해보았습니다.

하지만 그 코드에 대해 아직까진 전혀 무엇인지 배우지 않았죠.


오늘은 한번 HelloWorld를 출력하는 코드를 분석해보도록 하겠습니다.


저번에 입력했던 코드입니다.


C언어는 위에서부터 아래로 순서대로 실행됩니다.

첫번째줄부터 순서대로 하나씩 읽어나가는거죠.


그러니 위에서부터 한줄씩 분석해보도록 합시다


#include <stdio.h>

우선 첫번째줄에 이런게 있네요?


include는 포함하다라는 뜻이죠

stdio.h를 포함한다는 얘기입니다.

stdio.h가 뭐냐면


stdio = Standard Input Output

즉 표준 입출력

이라는겁니다

stdio.h는 입력과 출력에 관련이 된것들이 정의되어있습니다.

이런식으로 미리 정의되어있는것들을 가져올수 있는데 이것을 헤더파일이라고 합니다

헤더파일이라서 확장자가 h인거죠

헤더파일은 stdio.h뿐만 있는게 아니고 여러개가 있으며 직접 만들어서 추가시킬수도 있습니다


글자를 출력해주는 printf(); 함수도 stdio.h에 포함되어있는것이죠.

그럼 첫번째줄은 대충 분석이 끝났습니다.


int main(void) {

}


두번째줄부터는 이런코드가 있네요.

이런것을 함수 라고합니다.


함수는 기본적으로 이런형태로 이루어져있습니다.

프로그램을 만들때 기본적으로 들어간다고 보시면 됩니다.

일단 지금은 자세하게 이해할필요는 없고 간단하게 알아두시기만 해도 강좌를 듣는데 별 문제 없습니다.


프로그램을 실행할때는 main 함수부터 실행되도록 되어있기때문에 필수적으로 들어가야합니다.

그럼 이 메인함수 안에 코드를 작성해주면 프로그램이 실행될때 코드가 작동하겠죠.

그래서 main함수 안에 printf()를 넣어준겁니다.

그럼 printf는 무엇일까요?


printf("Hello World");

printf는 자신이 원하는 문자를 출력할수 있습니다.

"HelloWorld"를 입력해놓았기때문에 HelloWorld가 출력된것이죠.

Hello World를 ABC로 바꾸면 ABC가 출력됩니다.


근데 여기서 중요한게 있습니다.

프로그래밍을 할때는 한 문장마다 뒤에 ; ( 세미콜론 ) 을 붙여줘야합니다.


왜 뒤에 ; ( 세미콜론 ) 이 붙는것일까요?

그건 바로 문장의 끝을 알려주는겁니다.

컴퓨터가 이 코드를 읽을때 어디부터 어디까지가 한문장인지 모릅니다.

그렇기때문에 문장의 끝을 ;로 알려주는겁니다. 마침표와 비슷한 역할이라고 보면 되겠네요.

그래서 ;를 붙이지 않을경우 버그나 오류가 발생하게 됩니다.


한번 한문장 말고도 여러줄을 출력시켜봅시다.

#include <stdio.h>


int main(void) {

printf("Hello World");

printf("Hello World");

이렇게 하면 두개의 문장이 만들어진거죠.

printf("Hello World"); printf("Hello World");

이런식으로 한줄에 두개의 코드를 넣어도 상관 없습니다. 문장의 끝은 ;가 알려주기때문이죠

하지만 프로그래머가 코드를 읽기 힘들어지기때문에 저렇게 쓰는건 좋지 않습니다.


근데 이걸 출력해보면 이상한일이 벌어질겁니다.

printf를 여러번 입력해도 한줄에 출력되는걸 볼수잇죠


그럼 printf를 출력할때 줄을 바꾸고싶다면 어떻게해야될까요?

코드를 짤때 엔터로 줄을 바꿔줘도 소용없습니다. printf를 두번 쳐봐도 한줄에 출력됩니다.

그래서 특수문자라는게 존재합니다. 줄을 바꾸는 특수문자는 \n 입니다

HelloWorld에 개행을 추가해봅시다


#include <stdio.h>


int main(void) {

printf("Hello \n World");




\n를 추가해보니 줄이 바뀌어서 출력됐네요

근데 만약 \n라는 글자를 출력하고싶으면 어떻게해야될까요?

\n를 입력하면 줄이 바뀌어버리니 \n를 출력할수 없을겁니다.


하지만 특수문자는 \n이외에도 여러개 존재합니다

다른 특수문자들을 이용해서 출력 가능합니다.


 \n

줄바꿈 

 \\

 \

 \a

 경고음재생

 \b

 백스페이스

 \f

 폼 피드

 \r

 캐리지 리턴

 \t

 수평탭

 \r

 수직탭

 \"

 "

 \'

 '

 \0

 NULL

 \?

 ?




\를 출력하려면 \를 두번쓰면 됩니다


printf("\\");

이런식으로 말이죠


"를 입력하려면 \"를 하면 됩니다.

이런식으로 하면 원하는 문자를 모두 출렧킬수 있죠.


오늘은 HelloWorld를 출력하는 코드에대해 분석해보았습니다.

다음강좌에서는 변수에 대해 설명해드리겠습니다.


근데 새로 프로그래밍을 배우는 여러분들께 해주고싶은 말이 하나 있습니다.

프로그래밍은 글을 읽기만 하는것보다는 직접 따라하고 여러가지로 시도해보면서 배우는게 좋다고 생각합니다.

문법을 어느정도 배우고나면 직접 여러가지 프로그램도 짜보는게 빠르게 배울수 있는 방법이라고 생각됩니다.


프로그램을 짜다보면 자신이 원하는 기능이나 구현하기 힘든기능이 있을겁니다.

그럴때 인터넷에 검색해보거나 강좌를 뒤져보는식으로 자신이 원하는 기능을 찾습니다.

그런식으로 하다보면 어느세 자신도 프로그램을 자유롭게 짤수 있을겁니다.


강좌를 쭉 읽는것보다는 한번 직접 여러가지 프로그램을 만들어보세요.

그게 훨신 재미도 있고 빠르게 배울수 있습니다.



그리고 처음 배울때부터 모든것을 이해하려 할필요 없습니다.

우선 따라하면서 여러가지 코드를 분석해보고 기능을 알아내면서 직접 코드를 짜보기도 하다보면 자연스럽게 이해하게 됩니다.