함수란
msdn에서 ‘일부 작업을 수행하는 코드 블록’ 이라고 설명하고 있는 함수는,
쉽게 말해 특정한 기능을 하는 코드들을 묶어 하나의 명령어처럼 사용하게 하는 것을 가능하게 해줍니다.
왜 쓰는가
함수는 왜 쓰는걸까요? 함수를 사용하는 이유는 다음과 같습니다.
- 코드의 불필요한 반복을 피하기 위함 (재활용성)
- 코드를 체계적이고 간결하게 작성하기 위함 (가독성)
- 큰 프로그램을 여러 개의 부분으로 나누어 프로그래밍하고, 컴파일을 가능하게 함 (모듈성)
위와 같은 이유들로 함수를 사용합니다.
함수의 종류
함수에는 크게 두가지 종류가 있습니다.
- 라이브러리 함수
- 사용자 정의 함수
라이브러리 함수는 stdio와 같은 헤더파일 안에 정의되어있는 함수들입니다.
흔히 쓰는 printf(), scanf() 등이 이러한 종류의 함수들입니다.
사용자 정의 함수는 원하는 기능을 묶어 사용자가 구현하는 함수입니다.
함수 정의
C에서 함수를 정의하는 방법은 다음과 같습니다.
리턴타입 함수명(매개변수 선언 및 리스트) |
함수를 사용하려면 변수처럼 메인 위에 선언해 주어야 합니다. 선언과 동시에 구현 해주어도 됩니다.
#include <stdio.h> |
// 선언과 구현을 동시에 한 경우 |
위와 같이 함수를 선언하면,
sum((a), (b));
위와 같이 함수를 호출할 수 있게 됩니다.
함수의 호출
#include <stdio.h> |
위 코드에서 sum 함수를 호출하면 다음과 같은 과정이 이루어집니다.
- 17번째 줄에서 num1과 num2를 매개변수로 대입하게 됩니다.
- 즉, sum함수에서 a = num1, b = num2 가 된 것입니다.
- 매개변수를 받아왔으니 프로그래머가 구현한 작업을 하게 됩니다.
- return문은 값을 반환하는데, 위 예시에선 a+b의 값을 반환하게 되어있습니다.
- 다시 메인함수로 돌아와서 sum(num1, num2) 부분이 a+b를 반환하였기에, result에 num1+num2가 대입됩니다.