#include <stdio.h>
int main(void)
{
printf("hello, world!");
}
이 코드에는 C언어의 핵심적인 내용이 대부분 포함되었습니다. 이 코드를 이해하기 위해 하나하나 살펴보겠습니다.
1. 헤더파일
#include <stdio.h> // 표준 입출력 헤더파일
기본적으로 우리는 C언어 코딩을 할 때 무조건! 가장 첫 번째로 #include <stdio.h>
를 추가하고 시작합니다. 이 부분이 어떤 의미를 가질까요?
#은 매크로 기호로써 나중에 자세히 다루게 될테니, 지금은 include 앞에는 무조건 #이 와야한다는 정도만 알면 충분합니다. #include
는 ~를 포함해라 라는 명령어입니다. 그렇다면 #include <stdio.h>
는 "stdio.h"라는 헤더파일을 포함해라 라는 뜻입니다.
시작부분의 소스코드에 있는 printf()
함수는 우리가 모니터에 어떠한 문장을 출력할 때 쓰는 함수이며 문자열을 출력해주는 역할을 합니다. 하지만 우리는 그렇게 되도록 만든적이 없습니다. #include <stdio.h>
코드를 통해서 추가된 "stdio.h" 파일에 printf()함수를 정의했기 때문에 그냥 사용 가능합니다. 자주 사용되는 것들을 미리 만들어 둔 파일들을 라이브러리라고 합니다. stdio.h 파일은 C언어가 기본적으로 제공하는 표준 입출력(standard input output) 라이브러리입니다.
#include <stdio.h>
코드로 인해 컴파일러는 자동으로 stdio.h에 있는 내용들을 가지고 와서 작성중인 파일에 포함시킵니다. 즉, stdio.h에 있는 코드를 복사하여 붙여놓는 것과 동일한 겁니다.
2. 함수
C언어는 함수들로 이루어져 있습니다. 가장 기본이 되는 main함수 역시 하나의 함수입니다. 함수란 간단하게 어떠한 일을 해주는 것 정도가 되겠습니다. 먼저, 함수의 기본 형태를 봅시다.
int add(int a, int b)
{
int c = a+b;
return c;
}
- 반환형
add 함수는 호출이 되면 최종적으로 c를 돌려줍니다. c를 내어놓는단 겁니다. 함수가 어떠한 값을 반환해야 할 때 return 이라는 명령어를 사용합니다.
- 전달인자
함수가 전달받는 것 입니다. 함수는 외부에서 선언된 변수, 배열등의 자료를 전달인자를 통해 전달받아 함수 내에서 사용할 수 있습니다.
- 몸체
함수가 실행시킬 내용으로 { }에 둘려싸여 있습니다. 위의 함수는 c라는 새로운 변수를 선언하고, a와 b의 합을 거기에 저장하는 과정을 거칩니다. 최종적으로 return 명령어를 통해 함수를 호출한 곳으로 c를 반환시켜줍니다.
함수에 대해서는 나중 함수 파트에서 자세히 다룰테니 이렇게 쓰는거구나 감 정도만 잡으면 충분합니다.
3. main 함수
int main(void) //메인함수
{
printf("I love C\n"); //모니터 출력함수
return 0; // 리턴문
}
C로 작성된 프로그램이 실행되면, 운영체제는 main() 함수를 찾아서 코드를 한줄 한줄 차례대로 실행시킵니다. 즉, 우리가 C프로그램을 실행한다는건, main()함수 내부의 문장들을 실행시키는 것입니다. 즉, 모든 C 프로그램은 main() 함수를 가지고 있어야합니다. C코드는 이러한 main()함수에 부가적으로 필요한 함수들을 main() 함수 외부에 정의하고 가져다 쓰는 구조인 것입니다.
main 함수는 항상 마지막으로 return 0; 라는 문장을 가집니다. main함수를 종료한다는 것은 프로그램의 종료이며, main함수는 0을 운영체제로 반환시켜 줌으로써 프로그램의 종료를 알립니다.
4. 명령의 끝을 알리는 세미콜론(;)
추가로 모든 문장의 끝에 세미콜론(;)이 보이시죠? 세미콜론은 여기서 문장이 끝났음을 알리는 용도입니다. 문장간의 구분을 위해 사용해야하는 빼먹지 말아야 할 기호입니다.
5. 주석
소스코드의 옆에 제가 // 와 함께 설명 해 놓은 부분이 주석입니다. //를 쓴 이후의 문장은 컴파일러가 무시를 합니다. 주석은 스스로 나중에 코드를 보면서 기억하기위한 목적과 타인이 코드를 이해할 수 있도록 도움을 주는 목적으로 사용합니다.
'프로그래밍 언어 > C' 카테고리의 다른 글
(C언어) 5 - printf 함수 (0) | 2020.05.14 |
---|---|
(C언어) 4 - 변수 (0) | 2020.05.14 |
(C언어) 2 - 컴퓨터와 2진수 (0) | 2020.05.14 |
(C언어) 1 - C언어로 프로그램이 제작되는 과정 (0) | 2020.05.14 |
(C언어) 0 - C언어란 무엇인가 (0) | 2020.05.14 |