반응형
🧩 C언어 함수(function) 쉽게 배우기 – 코드 재사용의 시작
프로그램이 길어질수록 같은 코드를 반복 사용하는 일이 많아집니다.
이럴 때 함수(function)로 코드를 묶어두면 재사용, 가독성, 유지보수 모두 좋아집니다.
✅ 1. 함수란?
특정 작업을 수행하는 코드 블록. 입력(매개변수)을 받아 출력(반환값)을 돌려줄 수 있습니다.
반환형 함수이름(매개변수목록) {
// 실행 코드
return 반환값; // 반환형이 void가 아니면 필수
}
✅ 2. 함수 선언과 정의
선언(프로토타입)은 컴파일러에게 함수 정보를 미리 알려주는 것, 정의는 실제 구현입니다.
#include <stdio.h>
/* 선언(프로토타입) */
int add(int a, int b);
/* 정의 */
int add(int a, int b) {
return a + b;
}
int main() {
int s = add(3, 5);
printf("sum = %d\n", s);
return 0;
}
✅ 3. 매개변수 & 반환값
- 매개변수: 함수가 받는 입력값의 이름과 자료형을 지정합니다.
- 반환값: 함수가 돌려주는 값. 반환형이
void
면return;
생략 가능합니다(또는 값 없이 사용).
float avg(int total, int n) {
return total / (float)n;
}
void print_line(int n) {
for (int i = 0; i < n; i++) printf("-");
printf("\n");
}
✅ 4. 자주 쓰는 패턴 예제
① 두 수 중 큰 값 반환
int max2(int x, int y) {
if (x > y) return x;
else return y;
}
② 입력받아 합/평균 계산
#include <stdio.h>
int sum2(int a, int b) { return a + b; }
float avg2(int a, int b) { return (a + b) / 2.0f; }
int main() {
int a, b;
printf("두 정수 입력: ");
scanf("%d %d", &a, &b);
printf("합 = %d\n", sum2(a, b));
printf("평균 = %.2f\n", avg2(a, b));
return 0;
}
❗ 5. 자주 하는 실수
반환형
과return
타입 불일치 → 경고/오류 발생- 프로토타입 없이 아래쪽에 정의만 해두고 위에서 호출 → 선언 누락 시 암시적 선언 문제(현대 컴파일러에서 오류)
- 매개변수 개수/타입 불일치 호출 → UB(정의되지 않은 동작) 위험
📝 6. 실습 문제
int min2(int x, int y)
더 작은 값을 반환하는 함수를 작성해보세요.int abs_int(int x)
음수면 양수로 바꿔 반환하는 함수를 작성해보세요.- 사용자로부터 정수 3개를 입력받아
max2
,min2
를 조합해 최댓값/최솟값 출력 프로그램을 작성해보세요.
📌 다음 강의 예고
다음 글에서는 포인터(pointer) 기초 다루겠습니다. 함수와 포인터의 관계(주소 전달), call-by-value 한계 보완 방법 정리해보겠습니다.
👉 다음 글: C언어 포인터 기초 – 주소와 참조 이해
👈 이전 글: C언어 배열 기초 – 여러 값을 저장하는 방법
이 글이 도움이 되었으면 댓글과 공감 부탁드립니다!
더 많은 글은 👉 Coding Life 100 Hacks 에서 확인하세요 😊
반응형
'c언어 입문' 카테고리의 다른 글
[C언어 기초] 배열(array) 쉽게 배우기 – 여러 개의 데이터를 한번에 다루기 (1) | 2025.08.08 |
---|---|
[C언어 기초] 반복문(for, while) 쉽게 배우기 – 구구단 만들기 실습 (2) | 2025.08.05 |
[C언어 기초] 조건문(if, else) 쉽게 배우기 – 점수 판별 프로그램 만들기 (0) | 2025.08.02 |
[C언어 기초] scanf 사용법 완벽 가이드 – 사용자 입력 받아보기 (2) | 2025.07.31 |
[C언어 기초] 변수와 자료형 완전정리 – 입문자를 위한 실습 코드 포함 (0) | 2025.07.24 |
댓글