#include와 main() 함수 — 코드의 준비와 시작 | 기초 C언어 2.1.2-2.1.3

기초 C언어Chapter 02 C언어의 기초 › Section 01 코드 작성

2.1.2~2.1.3 #include 와 main() 함수

앞에서는 코드를 그대로 따라 쳤음. 이번에는 그 코드가 무슨 뜻인지 볼 차례. 한 줄은 준비를 지시하고, 다른 한 줄은 실행이 시작되는 자리.

교재 수록 위치
교재
『기초 C언어』 · 2026년 개정판 · 364쪽
단원
Chapter 02 C언어의 기초 › Section 01 코드 작성
쪽수
26p ~ 29p4쪽
세부 내용
02 #include26p~27p · 03 main() 함수28p~29p

01오늘 볼 두 줄교재 26p~29p

CODE 2.1 | 이 편에서 다루는 두 줄
  1. #include <stdio.h>
  2. int main(void) {
  3. printf("Hello, World!\n");
  4. return 0;
  5. }
  • 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는 ‘비어 있다’ — 아무 정보도 전달받지 않음
{ }함수의 몸통실제 내용이 시작되고 끝나는 범위. 모든 실행문은 반드시 이 사이에
  • intreturn 0;은 짝 — 정수를 돌려주겠다고 해 놓고, 마지막에 정수 0을 돌려주는 것.
  • 인수를 자판기로 보면 — 동전을 넣으면 음료가 나옴. 그 동전이 인수. main은 받을 것이 없어 void.

이 절의 핵심 정리

  1. 전처리기는 컴파일 전에 #으로 시작하는 줄을 먼저 처리한다
  2. include는 다른 파일의 내용을 가져와 합치라는 지시문이다
  3. <stdio.h> = 표준 입출력(stdio) + 헤더 파일(.h) + 표준 라이브러리에서 찾기(< >)
  4. main()은 실행의 시작점이며 프로그램에 반드시 하나만 존재한다
  5. int main(void) { } = 반환 자료형 · 함수 이름 · 인수 자리 · 함수의 몸통
강의 자료2.1.2~2.1.3 #include 와 main() 함수 1 / 12

번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다
다음 절 · 2.1.4 읽기 쉬운 코드 작성 교재 30p~32p — 같은 코드라도 사람이 읽기 쉽게 정리하는 세 가지 방법을 살펴봅니다.

더 자세한 내용은 교재에서

이 글은 『기초 C언어』 26p~29p의 내용을 강의 영상에 맞춰 핵심만 간추린 요약입니다. 각 개념의 상세한 설명과 예제, 실습 코드, 임용시험 기출문제 풀이는 교재에서 다루고 있습니다.

댓글

이 블로그의 인기 게시물

2007년 국가직 9급 기계일반 기출문제 풀이

2008년 국가직 9급 기계일반 기출문제 풀이

열역학의 개요 — 계·상태량·열과 일, 제1·제2법칙 | 기초 열역학 1.1