C언어 기초 1일차 : Hello World!

bitterpotato·2020년 8월 27일
0

C언어 기초

목록 보기
1/7

개요


오늘은 무작정 Hello world!를 출력하는 프로그램을 만들어보고 각 부분이 어떤 의미를 가지고 있는지 알아보도록 하겠다.

참고 : ctrl + ` (백 쿼터) 는 Visual Studio Code에서 터미널을 실행시키는 단축키이다.

참고 : ctrl + , (쉼표) 는 Visual Studio Code에서 Setting을 띄우는 단축키이다.


코드


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

실행 결과


축하합니다! 당신은 Hello World!를 출력하는 프로그램을 만들었습니다!

이렇게 결과가 나오지 않고 Hello World!가 나오고 그 뒤에 Please type enter 어쩌고 이렇게 나와도 상관이 없다.

아무튼 여기에서는 Hello World가 출력되었다는 사실 하나가 중요하다.

참고로 나의 경우에는 Visual Studio Code에서 몇 가지 Extension과 gcc 등등을 이용해서 Visual Studio Code에서 코드를 실행할 수 있도록 한 것이기 때문에 위 사진과 당신이 실행한 결과와 조금 달라도 전혀 낙담할 것 없다.


설명


실행까지 해 보았다면, 위에 작성한 코드에 대한 내용을 한 줄 한 줄 설명하겠다.


#include <stdio.h>


#include <stdio.h>

#include <stdio.h>는 기본 표준 입출력 헤더 파일을 추가해 주는 부분이다.

이번에 우리가 사용한 printf와 같은 함수들이 실행되는 방법을 정의해 놓은 파일을 추가할 수 있는 구문이라고 생각하면 된다.

또한 이 부분에 #include <stdio.h> 뿐 만 아니라 #define MAX 100과 같은 내용을 추가할 수 있다.

#이 붙는 곳들을 전처리기라고 부르는데 여기서는 프로그램이 실행되기 이전 처리되는 부분이라고 설명하고 추후에 자세히 다루도록 하겠다.


int main() {}


int main() {
    [구문]
}

1) main 함수


우리는 앞으로 위의 부분을 main 함수라고 부를 것이다.

main 함수란 프로그램 작성시 프로그램을 실행하기 위한 시작점으로서 기능하는 함수로 한 프로그램 내에 1개의 main 함수만 존재한다. (없어도 오류가 난다) 우리가 일반적으로 모듈화 프로그래밍을 하지 않는 이상 main 안에 프로그램을 실행했을 때 하면 좋을 작업들을 중괄호 내에 집어넣는다고 생각하면 된다.


2) 반환 값 지정


그렇다면 main 함수 부분은 알겠고, 그 앞에 붙은 int는 무엇일까?

int main에서 int라고 적힌 부분은 해당 함수가 실행 된 후 어떤 값을 반환할 건지 지정하는 인자이다.

즉, 우리가 main() 앞에 int를 입력 함으로서, 이 함수가 성공적으로 실행이 마무리되면 정수 타입으로 반환해 줄 것이라고 지정해 줄 수 있다.

그 안에 들어갈 수 있는 인자로는 반환값이 없다는 의미의 void, 문자 한 글자를 반환한다는 의미의 char, 정수를 반환한다는 의미의 int, 실수를 반환한다는 의미의 float 등이 있다.

int 이외의 나머지 값들은 main에서 사용하는 것이 권장되지 않으며(하지 말자), 다른 함수를 선언할 때 마음껏 사용하도록 하자.

더 자세한 사항은 추후에 올라올 C언어 자료형을 읽어보면 좋을 것이다.


+) void main() {}의 사용을 피해야 하는 이유


반환 값을 통해 프로그램이 정상적으로 종료 되었는지 체크할 수 있지만, void의 경우 반환 값이 없어 프로그램이 정상적으로 종료 됐는지 체크할 수 없다.

Microsoft Visual Studio의 경우에는 void main()을 지원하기도 하지만, void main() 자체가 권장되지 않기 때문에 가급적 사용하지 않도록 한다.

백준에서 void main() {}으로 할 경우 정답이 아니라고 판단되는 것도 이와 유사한 맥락이다.


printf("Hello World!\n");


이쯤에서 실행 결과를 다시 한 번 보고 오도록 하자.

Hello World! 무언가 겹치는 부분이 있다고 생각할 수 있다.

printf는 생각했던 것과 같이 Console(여러분의 프로그램이 실행된 그 검은 창)에서 큰 따옴표로 감싸준 부분이 출력될 수 있도록 하는 함수이다.

우리는 그 따옴표 사이에 Hello World!\n을 입력하여 Console 창에서 Hello World!가 출력되는 것이다.

근데, \n은 어디로 갔을까?

\n은 문자 그 자체로 인식되는 것이 아니라 강제개행, 즉 줄바꿈을 하도록 하는 인자이다. 따라서 Hello World!가 출력된 후 엔터를 집어넣는 것과 동일하다고 보면 된다.

\n 이외에 \t 등 다양한 인자가 있지만 이는 다음에 다루기로 하겠다.


return 0;


return 0;는 위의 main 함수 부분에도 설명한 내용인데, 해당 함수가 실행된 후 반환된 값을 의미한다.

main 함수에서 0이 반환되면 정상 종료로 인식한다.

0이 아닌 다른 값으로 반환될 경우 비정상 종료로 인식한다.

반환 값에 대한 내용은 추후에 함수를 다루면서 더 자세히 설명할 예정이다.


Special Thanks


LJLee37 (Github : https://github.com/LJLee37, Twitch : https://www.twitch.tv/ljlee37)

profile
개발자 망생이

0개의 댓글