C언어 기초

준비중..

C언어 기초

예제와 함께 C언어 기초 정복!

09 함수

# 함수(function) ## 목차 1. 함수란 2. 함수의 장점 3. 함수 사용법 - 함수 호출 - 함수 정의 및 구조 - 실행 흐름 4. 요약 ## 1. 함수란 함수란 일련의 `코드 묶음`으로, **입력**을 받아 결과를 **반환**하는 특징을 갖는다. ![Imgur](https://i.imgur.com/pZHQxTH.png) ## 2. 함수의 장점 함수를 사용하면, 많은 양의 코드를 단순화(`추상화`)할 수 있다. 예를들어 아래의 라면을 끓이는 코드를, ``` int main() { printf("라면을 산다\n"); printf("스프를 넣는다\n"); printf("물을 끓인다\n"); printf("면발을 넣는다\n"); } ``` 단 한 줄로 실행할 수 있다. ``` int main() { cook_ramen(); } ``` ## 3. 함수 사용법 함수를 사용하려면 두 가지 영역을 알아야 한다. - 호출(실행부) - 정의(구현부) ### 3.1 함수 호출 함수 호출(call)이란, 묶음 단위 코드를 실행하는 것이다. 호출 방법은, **함수명**(function name)을 적고 소괄호 사이에 **입력값**(arguments)을 넣음으로 수행된다. ``` // 함수명: plus_one // 입력값: 10 int x = plus_one(10); ``` `plus_one(10)` 함수의 동작을 다음과 같이 정의하면, - 입력값에 1을 더해 반환 함수의 실행 결과는 아래 코드와 같다. ``` // 반환값: 입력값 + 1 int x = 11; ``` ### 3.2 함수 정의 함수를 호출하기 위해서는 먼저 정의(미리 만듬)되어야 한다. ``` int main() { int x = plus_one(5); } ``` 위 코드가 동작하기 위해서는 두 가지 조건이 필요하다. 1. 함수가 만들어져 있어야 하고, 2. 호출 지점보다 앞서 작성되야 한다. 함수를 정의하기에 앞서 먼저 구조를 알아야 한다. 구조는 아래와 같다. ``` // TYPE: 반환값(VALUE)의 타입 // NAME: 함수명 // PARAMETERS: 입력값을 저장하는 변수 // VALUES: 반환값으로, TYPE과 일치해야 함 TYPE NAME(PARAMETERS) { return VALUE; } ``` 함수의 정의로 다시 돌아와서, `plus_one(5)`가 동작하려면 함수 정의 부분이 추가되야 한다. ``` /* 함수 정의 */ int plus_one(int n) { return n + 1; } /* 프로그램의 시작점 */ int main() { int x = plus_one(5); // 함수 호출 -> 결과값 반환 -> x로 대입 } ``` ## 4. 요약 1. 함수란 일련의 **코드 묶음**이다. 2. 함수를 사용하면, 많은 양의 **코드를 단순화** 할수 있다. 3. 함수는 호출과 정의 영역으로 나뉜다. - 호출: 정의된 **함수를 수행** - 정의: **입력값**을 **반환값**으로 만들기 위한 일련의 코드를 기술

Challenge

개념 실습! 학습 내용을 진짜 내 것으로 만들기!