#include와 main() 함수 — 코드의 준비와 시작 | 기초 C언어 2.1.2-2.1.3
기초 C언어Chapter 02 C언어의 기초 › Section 01 코드 작성
2.1.2~2.1.3 #include 와 main() 함수
앞에서는 코드를 그대로 따라 쳤음. 이번에는 그 코드가 무슨 뜻인지 볼 차례. 한 줄은 준비를 지시하고, 다른 한 줄은 실행이 시작되는 자리.
01오늘 볼 두 줄교재 26p~29p
CODE 2.1 | 이 편에서 다루는 두 줄
#include <stdio.h>int main(void) {printf("Hello, World!\n");return 0;}
- 01줄 — 전처리기가 먼저 처리하는 줄. 준비를 지시함.
- 03줄 — 운영체제가 찾는 시작점. 실행이 시작되는 자리.
- 1장과의 차이 — 그때는 프로그램 전체의 구조를 보느라 빠르게 지나갔음. 이번에는 한 조각씩 뜯어봄.
02전처리기와 지시문교재 26p
- 번역의 순서 — 소스 코드 → 전처리기 → 컴파일러 → 기계어.
- 컴파일러가 기계어로 번역하기 전에 거치는 곳이 전처리기. ‘미리 처리하는 프로그램’이라는 뜻.
- 전처리기(Preprocessor) — 소스 코드를 훑어 # 기호로 시작하는 문장을 찾아 먼저 처리.
- 전처리기 지시문 — #으로 시작해 전처리기에게 특정 작업을 지시하는 문장. 예 : #include <stdio.h>
번역가와 조수처럼
- 번역가에게 원고를 넘기기 전에, 조수가 먼저 원고를 훑으며 표시된 곳을 손봐 두는 것과 같음.
03파일을 포함하는 include교재 26p
- 전처리기 지시문의 한 종류 — ‘포함하다’라는 뜻 그대로, 다른 파일의 내용을 가져와 지금 내 코드에 합치라는 명령.
- 무엇을 합치는가 — C언어가 제공하는 stdio.h → 내가 쓰는 hello.c 안으로.
- 왜 필요한가 — 프로그래밍에 필요한 수많은 기능은 이미 C언어가 표준으로 제공하고, 여러 파일에 나뉘어 정리되어 있음. include는 그 기능을 꺼내 쓸 길을 열어 주는 역할.
04<stdio.h> 세 조각교재 26p~27p
| 조각 | 읽는 법 | 뜻 |
|---|---|---|
| stdio | 표준 입출력 | Standard Input Output의 약자. 키보드(입력 장치)·모니터(출력 장치)를 다루는 기능들이 관련됨 |
| .h | 헤더 파일 | 확장자. .c가 소스 파일 표시였듯 .h는 헤더 파일 표시 |
| < > | 앵글 브래킷 | C언어 설치 시 딸려 오는 표준 라이브러리 폴더에서 찾으라는 뜻 |
- 헤더 파일 안에 든 것 — 함수가 실제로 어떻게 동작하는지를 적은 코드가 아니라, printf 같은 함수의 이름 · 역할 · 사용 방법이 적혀 있음. 이것을 선언이라 함.
- 쉽게 말하면 사용 설명서. 컴파일러는 이것을 보고 printf를 어떻게 써야 하는지 알게 됨.
- 라이브러리란 — 미리 만들어 둔 기능들을 모아 놓은 창고. 표준 라이브러리는 C언어를 설치하면 함께 들어오는 기본 창고.
- 01줄 전체의 뜻 — “본격적인 컴파일을 시작하기 전에, 화면에 글자를 출력하는 printf의 사용법이 담긴 표준 입출력 헤더 파일의 내용을 가져와 소스 코드에 미리 포함시켜라.”
05main() 함수란?교재 28p
- 프로그램의 핵심 — #include 지시문 바로 다음에 위치. 자동차의 시동을 거는 엔진에 해당.
- 운영체제가 하는 일
- ① 프로그램 안에서 main이라는 이름의 함수를 가장 먼저 찾음
- ② 그곳의 첫 번째 줄부터 코드를 순서대로 실행
- ‘찾는다’의 뜻 — 실행할 때 코드를 처음부터 뒤진다는 말이 아님. 번역할 때 이미 시작점으로 정해져 있고, 운영체제는 그 자리부터 실행.
06반드시 단 하나교재 28p
- 0개 — 오류. 1개 — 정상. 2개 이상 — 오류.
- 왜 그런가 — 실행에 앞서 컴파일러부터 막힘. 어디서부터 프로그램을 시작해야 할지 알 수 없기 때문.
- 1장의 학교 문 비유 — 문이 하나도 없으면 들어갈 수 없고, ‘그 문’이라고 붙은 문이 두 개면 어느 쪽으로 들어가야 할지 알 수 없음.
07int main(void) { }의 네 부분교재 28p~29p
| 부분 | 이름 | 뜻 |
|---|---|---|
| int | 반환 자료형 | integer(정수)의 약자. 일을 마치고 자기를 부른 운영체제에게 정수 값을 돌려주겠다는 약속 |
| main | 함수 이름 | 시작점으로 쓰기로 약속된 이름. 바꿀 수 없음 — 대소문자를 구분하므로 Main은 다른 이름 |
| (void) | 인수 자리 | 소괄호는 입력 값(인수)을 받는 공간. void는 ‘비어 있다’ — 아무 정보도 전달받지 않음 |
| { } | 함수의 몸통 | 실제 내용이 시작되고 끝나는 범위. 모든 실행문은 반드시 이 사이에 |
- int와 return 0;은 짝 — 정수를 돌려주겠다고 해 놓고, 마지막에 정수 0을 돌려주는 것.
- 인수를 자판기로 보면 — 동전을 넣으면 음료가 나옴. 그 동전이 인수. main은 받을 것이 없어 void.
이 절의 핵심 정리
- 전처리기는 컴파일 전에 #으로 시작하는 줄을 먼저 처리한다
- include는 다른 파일의 내용을 가져와 합치라는 지시문이다
- <stdio.h> = 표준 입출력(stdio) + 헤더 파일(.h) + 표준 라이브러리에서 찾기(< >)
- main()은 실행의 시작점이며 프로그램에 반드시 하나만 존재한다
- int main(void) { } = 반환 자료형 · 함수 이름 · 인수 자리 · 함수의 몸통
강의 자료2.1.2~2.1.3 #include 와 main() 함수
1 / 12
번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다
다음 절 · 2.1.4 읽기 쉬운 코드 작성 교재 30p~32p — 같은 코드라도 사람이 읽기 쉽게 정리하는 세 가지 방법을 살펴봅니다.
더 자세한 내용은 교재에서
이 글은 『기초 C언어』 26p~29p의 내용을 강의 영상에 맞춰 핵심만 간추린 요약입니다. 각 개념의 상세한 설명과 예제, 실습 코드, 임용시험 기출문제 풀이는 교재에서 다루고 있습니다.
댓글
댓글 쓰기