**함수(Function)**란 특정 작업이나 계산을 수행하는 독립적인 코드 조각으로, 필요할 때마다 이름을 불러(호출) 재사용할 수 있는 기능 모듈입니다.
1. 함수의 기본 구조
// 반환타입 함수이름 (매개변수목록)
int add(int a, int b) {
int result = a + b;
return result; // 결과값 반환
}
- 반환 타입 (Return Type): 함수가 모든 계산을 마친 후 돌려줄 결과값의 자료형 (반환할 값이 없다면
void사용). - 매개변수 (Parameter): 함수를 호출할 때 외부에서 전달받는 입력값.
return: 계산 결과를 호출한 곳으로 전달하고 함수를 종료.
2. 함수 선언 (Prototype)과 정의의 분리
C 언어 컴파일러는 위에서 아래로 코드를 읽으므로, main() 함수보다 아래에 구현된 함수를 호출하려면 상단에 **함수 원형(Prototype)**을 선언해야 합니다.
#include <stdio.h>
// 1. 함수 원형 선언
int multiply(int x, int y);
int main(void) {
int res = multiply(4, 5); // 함수 호출
printf("결과: %d\n", res);
return 0;
}
// 2. 함수 실제 정의
int multiply(int x, int y) {
return x * y;
}
3. 함수를 사용할 때의 장점
- 코드 중복 제거: 똑같은 코드를 여러 번 반복해서 적을 필요가 없음.
- 모듈화 및 가독성: 전체 프로그램을 작은 기능 단위로 나누어 유지보수가 쉬워짐.
- 디버깅 용이성: 특정 기능에 오류가 생기면 해당 함수만 수정하면 됨.
4. 자주 묻는 질문 (Q&A)
Q. 함수 반환형에 쓰이는 void의 뜻은 무엇인가요?
A. "빈 공간", "없음"을 의미합니다. void print_hello(void) 처럼 쓰이면 "입력 매개변수도 없고, 반환하는 결과값도 없는 함수"라는 의미입니다.