티스토리 뷰

2021.02.10.수
함수 정의
반환값자료형 함수명(매개변수) {
명령문;
return 값;
}
✔ 어떠한 기능을 수행하기 위한 특정 용도의 코드를 한 곳에 모아놓은 것으로 main함수 바깥에 정의한다.
✔ 반환값자료형 : 최종적으로 함수가 return할 값의 자료형을 넣어준다.
✔ 함수명 : 함수의 기능에 기반하여 함수명을 정한다.
✔ 매개변수 : 함수가 실행되기 위해 필요한 값과 자료형을 미리 선언하고, 필요한 값을 받아올 수 있다.
✔ 명령문 : 함수의 기능을 수행하기 위한 코드
✔ return 값 : 최종적으로 함수가 return하는 값
int sum(int a, int b){
int result=a+b;
return result;
}
✔ 정수 a와 b의 합을 구하는 함수는 위와 같다.
✔ 반환값자료형 : 정수의 합을 구하는 함수이므로, 결과적으로 반환해야하는 값도 정수형이다(int)
✔ 함수명 : 합을 구하기위한 함수이므로, sum으로 명명.
✔ 매개변수 : 합을 구하기 위해서는 정수 a와 정수 b가 필요하다.
✔ 명령문 : 합을 구하기위한 함수이므로, a와 b의 합을 구해 정수형 변수 result에 저장한다.
✔ return 값 : 최종적으로 변수 result에 저장된 a와 b의 합을 반환한다.
함수 호출
#include <stdio.h>
int sum(int a, int b){
int result=a+b;
return result;
}
int main(void){
int a=1, b=2;
int result = sum(a,b);
printf("%d와 %d의 합은 %d입니다",a,b,result);
return 0;
}
✔ 프로그램이 시작되면 main함수가 실행되므로, 정의한 함수를 사용하기 위해서는 main함수에서 함수를 호출해주어야한다.
✔ 변수는 선언된 위치에 따라 사용 범위가 정해진다.
✔ 즉, 함수 sum에서 선언된 변수와 main함수에서 선언된 변수의 이름이 동일해도 사용 범위가 다르므로 에러가 발생하지 않는다
함수 선언과 정의의 분리
#include <stdio.h>
int sum(int a, int b);
int main(void){
int a=1, b=2;
int result = sum(a,b);
printf("%d와 %d의 합은 %d입니다",a,b,result);
return 0;
}
int sum(int a, int b){
int result=a+b;
return result;
}
✔ 프로그램은 위에서 아래로 차례대로 실행된다.
✔ main함수보다 사용자 함수가 아래에 정의되어 있으면 main함수에서는 사용자함수를 인지하지 못해 에러가 발생한다.
✔ 사용자 함수가 늘어날수록 main함수가 아래로 밀리게되면 가독성이 좋지않다.
✔ 그러므로 위와 같이 함수의 선언과 정의를 분리한다.
✔ 함수를 main함수 위에 선언해 컴파일러에게 미리 함수의 정보를 전달한다.
✔ 즉, 함수의 선언이 main함수의 위에서 이루어지면, 정의가 아래에서 이루어지더라도 main함수는 함수를 인지할 수 있다.
매개 변수가 없는 함수
✔ 단순히 입력만 받거나 출력만을 기능하는 함수라면 매개 변수가 필요 없다.
✔ 이런 경우 매개변수 자리에 void를 넣어준다.
반환값이 없는 함수
✔ 반환 값이 없는 경우, 함수를 선언할 때 반환값의 자료형을 설정할 필요가 없으므로 void를 넣어준다.
✔ 반환할 값이 없으므로 return문을 값 없이 단독으로 사용하여 함수의 종료를 알린다.
매개 변수와 반환값이 모두 없는 함수
✔ 매개 변수와 반환값이 모두 없는 함수도 존재하며, 이런 경우 매개변수와 반환값의 자료형에 모두 void를 넣어준다.
[참고] 한빛미디어-혼자 공부하는 C언어 유튜브 강의 / 엘리스 트랙-혼자 공부하는 C언어 / 길벗-C언어 코딩도장 / 위키백과
'BackEnd > C' 카테고리의 다른 글
[6일차] 1. 재귀 호출 함수 (0) | 2021.02.15 |
---|---|
[5일차] 숙제 - 코드업 1562. (0) | 2021.02.14 |
[5일차] 1. 중첩 반복문/break문/continue문 (0) | 2021.02.14 |
[4일차] 2. for문/while문/do-while문 (0) | 2021.02.14 |
[4일차] 1. if문/switch문 (0) | 2021.02.13 |