함수(Function)의 기초 — 함수의 뜻·함수 호출·실행 흐름·함수를 사용하는 이유 | 기초 C언어 9.1.1
기초 C언어Chapter 09 함수 › Section 01 함수의 기본 이해
9.1.1 함수의 기초
특정 작업을 수행하는 코드를 하나로 묶은 함수. 같은 출력을 반복하는 코드와 함수를 호출하는 코드를 비교하고, 함수를 사용하는 이유를 정리.
영상 목차 · 원하는 부분부터 보기
01main 함수 하나에서 여러 함수로교재 268p
- 8장의 배열에 이어 9장은 함수. 지금까지는 2.1.3에서 프로그램의 시작점으로 배운 main 함수 하나 안에 모든 코드를 작성.
- 프로그램의 규모가 커지면 main 안에 모든 코드를 두는 방식은 읽고 관리하기 어려운 구조.
- 지금까지 써 온 printf와 scanf도 함수. 미리 만들어 둔 함수를 불러 쓴 것이며, 이번 편은 함수가 무엇인지부터 확인.
02함수 — 코드를 묶은 하나의 단위교재 268p
- 함수(Function) — 특정 작업을 수행하는 코드들을 하나의 단위로 묶어 놓은 것. 묶은 단위에 이름을 붙이고, 그 이름을 부르면 안의 코드가 차례로 실행됨.
- 함수를 사용하면 반복되는 코드를 줄이고, 프로그램을 기능별로 나누어 작성 가능.
- 같은 문장을 여러 번 출력하는 경우를 예로 함수를 쓰지 않는 코드와 쓰는 코드를 비교.
03CODE 9.1 — 같은 printf를 세 번교재 268~269p
- 함수 없이 main 안에 똑같은 printf 문을 세 번 작성한 예제. 결과는 K대학교 세 줄로, 출력만 보면 문제가 없어 보임.
- 같은 기능이 반복되면 코드의 길이가 길어짐. 세 번이면 세 줄, 백 번이면 백 줄.
- 출력 내용을 바꿀 때 여러 줄을 모두 수정해야 하는 부담. 학교 이름이 바뀌면 세 줄을 빠짐없이 찾아 고쳐야 함.
04CODE 9.2 — school 함수를 세 번 호출교재 269p
- printf 문 하나를 묶은 school 함수를 정의하고, main에서 school();을 세 번 작성한 예제. 함수를 불러 쓰는 것을 호출이라고 함.
- 결과는 CODE 9.1과 같은 K대학교 세 줄. 출력은 같고 코드의 짜임이 다른 차이. 상세 코드는 교재 CODE 9.2.
| 구분 | CODE 9.1 | CODE 9.2 |
|---|---|---|
| 코드 구성 | main 안에 같은 printf 세 번 | school 함수 정의 + 세 번 호출 |
| 학교 이름 수정 | 세 줄 모두 고침 | school 함수 안의 한 줄만 고침 |
05호출하면 갔다가 돌아오는 실행 흐름교재 269p
- main에서 school();을 만나면 school 함수를 호출하고, 프로그램의 실행 흐름이 school 함수로 이동.
- school 안의 printf가 실행되어 K대학교 출력. school 함수가 끝나면 다시 main으로 돌아옴.
- main에서 다음 school();을 만나 같은 과정을 반복. 호출을 세 번 만나므로 세 번 되풀이되어 세 줄 출력.
돌아오는 자리는 호출한 줄의 바로 다음
함수가 끝난 뒤 main의 처음부터 다시 시작하는 것이 아님. 방금 호출한 문장 바로 다음부터 이어서 실행되므로, 두 번째·세 번째 호출로 차례대로 진행됨.
06함수를 사용하는 이유와 다음 편교재 270p
- 하나의 큰 프로그램을 여러 개의 작은 함수로 나누면 프로그램의 구조를 이해하기 쉬워짐.
- 장점 네 가지 — 코드의 중복 감소, 이름만 보고 기능을 알 수 있는 가독성, 함수의 내용만 고치면 되는 수정 용이성, 입력·계산·출력처럼 기능별로 나눈 작성.
- 반복문이 같은 자리에서 되풀이한다면, 함수는 필요한 자리마다 불러 쓰는 방식이라는 점이 구별점.
- 이번 편은 함수를 불러 쓰는 모습까지. 함수를 직접 만드는 형식은 다음 편 9.1.2 함수의 정의와 호출에서 다룸.
이 절의 핵심 정리
- 함수는 특정 작업을 수행하는 코드들을 하나의 단위로 묶어 놓은 것이다.
- 함수를 사용하지 않으면 같은 코드를 여러 번 작성하고 수정할 때도 모두 고쳐야 한다.
- 함수를 호출하면 실행 흐름이 그 함수로 이동했다가 끝나면 호출한 곳으로 돌아온다.
- 함수를 사용하면 코드의 중복을 줄이고 프로그램을 읽고 수정하기 쉽게 만들 수 있다.
- 큰 프로그램을 기능별 함수로 나누면 전체 흐름을 쉽게 파악할 수 있다.
강의 자료9.1.1 함수의 기초
1 / 10
번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다

댓글
댓글 쓰기