2025. 2. 24. 11:28ㆍ프로그래밍 언어/C
9.1 함수의 개념과 필요성
C 언어에서 함수(Function) 는 특정 작업을 수행하는 독립적인 코드 블록입니다.
함수를 사용하면 코드의 재사용성이 높아지고 가독성이 향상되며, 유지보수가 쉬워집니다.
C 언어에서 함수를 사용하려면 함수 선언, 함수 정의, 함수 호출의 개념을 이해해야 합니다.
1. 함수의 개념과 필요성
1.1 함수란?
- 특정 기능을 수행하는 코드 블록.
- 필요할 때 호출(call) 하여 실행할 수 있음.
- 매개변수(parameter) 를 사용하여 데이터를 전달할 수 있음.
- 실행이 끝나면 결과값을 반환(return) 할 수 있음.
📌 C 프로그램은 기본적으로 main() 함수에서 실행을 시작하며, 다른 함수들을 호출하여 작업을 수행.
1.2 함수의 필요성
함수를 사용하면 다음과 같은 장점이 있습니다.
✅ 코드 재사용 가능 → 동일한 기능을 여러 번 사용할 때 중복을 줄일 수 있음
✅ 가독성 향상 → 프로그램의 구조를 논리적으로 정리 가능
✅ 유지보수 용이 → 기능을 모듈화하여 수정과 개선이 쉬움
✅ 디버깅 용이 → 특정 기능별로 분리되어 오류 수정이 쉬움
예제 – 함수 없이 같은 코드 반복하는 경우
#include <stdio.h>
int main() {
printf("Hello, World!\n");
printf("Hello, World!\n");
printf("Hello, World!\n");
return 0;
}
📌 같은 코드가 여러 번 반복됨 → 비효율적
함수를 사용하여 개선
#include <stdio.h>
// 함수 선언
void printMessage() {
printf("Hello, World!\n");
}
int main() {
printMessage(); // 함수 호출
printMessage();
printMessage();
return 0;
}
📌 함수를 사용하면 코드 중복이 줄어들고, 유지보수가 쉬워짐.
2. 함수 선언과 정의
2.1 함수의 기본 구조
C 언어에서 함수를 사용하려면 함수 선언, 함수 정의, 함수 호출의 개념을 이해해야 합니다.
반환형 함수이름(매개변수) {
// 실행할 코드
return 값;
}
📌 함수의 구성 요소
- 반환형(Return Type) → 함수가 반환하는 데이터의 자료형 (int, void, double, char 등)
- 함수 이름(Function Name) → 함수의 고유한 이름
- 매개변수(Parameter) → 함수로 전달할 값 (없을 수도 있음)
- return 문 → 함수가 실행 결과를 반환하는 부분 (void 함수는 return이 없어도 됨)
2.2 함수 선언과 정의
함수를 사용하려면 먼저 선언한 후 정의해야 합니다.
(1) 함수 선언
반환형 함수이름(매개변수);
- 함수가 존재한다는 것을 컴파일러에 알려줌.
- 주로 main() 함수 위에 선언.
(2) 함수 정의
반환형 함수이름(매개변수) {
// 함수 실행 코드
return 값; // (반환값이 없으면 생략 가능)
}
- 함수의 실제 동작을 구현하는 부분.
(3) 함수 호출
함수이름(인자);
- 함수를 실행하려면 main() 함수에서 호출해야 함.
2.3 함수 선언, 정의, 호출 예제
#include <stdio.h>
// 함수 선언
void printHello();
// 메인 함수
int main() {
printHello(); // 함수 호출
return 0;
}
// 함수 정의
void printHello() {
printf("Hello, World!\n");
}
출력 결과
Hello, World!
📌 설명
- printHello(); → main() 함수에서 호출됨.
- printHello() 실행 → "Hello, World!" 출력.
3. 함수 호출
3.1 함수 호출이란?
함수를 호출하면, 해당 함수가 실행되고 결과를 반환할 수 있습니다.
📌 함수 호출의 기본 구조
함수이름(인자);
3.2 매개변수가 있는 함수 호출
함수 호출 시 매개변수를 전달하여 원하는 값을 사용할 수 있음.
#include <stdio.h>
// 함수 선언
void greet(char name[]);
int main() {
greet("Alice"); // 함수 호출
greet("Bob");
return 0;
}
// 함수 정의
void greet(char name[]) {
printf("Hello, %s!\n", name);
}
출력 결과
Hello, Alice!
Hello, Bob!
📌 설명
- greet("Alice") → name에 "Alice"가 전달됨.
- "Hello, Alice!" 출력 후, greet("Bob") 실행.
3.3 값을 반환하는 함수 호출
함수가 값을 반환하면, 호출된 곳에서 결과를 저장하거나 출력할 수 있음.
#include <stdio.h>
// 함수 선언
int add(int a, int b);
int main() {
int sum = add(5, 3); // 함수 호출
printf("5 + 3 = %d\n", sum);
return 0;
}
// 함수 정의
int add(int a, int b) {
return a + b; // 결과 반환
}
출력 결과
5 + 3 = 8
📌 설명
- add(5, 3) 호출 → a = 5, b = 3 전달됨.
- return a + b; → 8 반환.
- sum 변수에 저장 후 출력.
4. 정리
개념 | 설명 | 예제 |
함수 선언 | 함수가 존재한다고 컴파일러에게 알림 | int sum(int a, int b); |
함수 정의 | 함수의 동작을 구현 | int sum(int a, int b) { return a + b; } |
함수 호출 | 함수를 실행하는 코드 | sum(3, 4); |
매개변수 | 함수에 값을 전달하는 변수 | void greet(char name[]) |
반환형 | 함수가 반환하는 데이터 타입 | int, void, char 등 |
📌 함수를 사용하면 코드 중복을 줄이고 유지보수가 쉬워짐
📌 함수는 선언 → 정의 → 호출의 순서로 사용됨
📌 반환형이 void인 함수는 값을 반환하지 않음
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 초급 - 9장: 함수 (Function) (9.3 지역 변수와 전역 변수) (0) | 2025.02.24 |
---|---|
C언어 초급 - 9장: 함수 (Function) (9.2 매개변수와 반환값) (0) | 2025.02.24 |
C언어 초급 - 8장: 배열과 문자열 (8.3 문자열 (char 배열)) (0) | 2025.02.23 |
C언어 초급 - 8장: 배열과 문자열 (8.2 다차원 배열) (0) | 2025.02.23 |
C언어 초급 - 8장: 배열과 문자열 (8.1 배열의 개념) (0) | 2025.02.23 |