C 기본 문법 – 함수 – 0편: 함수의 기본 구조 완전 정복
안녕하세요, 여러분 😊
오늘부터는 C 언어의 또 하나의 핵심 요소인 **함수(function)**에 대해 배워볼 거예요!
이번 편에서는 함수의 기본적인 구조와 작성 방법을 중심으로
쉽고 자세하게 설명드릴게요.
🧠 함수란?
어떤 일을 처리하기 위해 묶어 놓은 코드의 집합입니다.
마치 “요리 레시피”처럼, 어떤 재료(입력값)를 받아서
결과물(출력값)을 만들어 내는 역할을 해요!
함수를 사용하면 코드가 더 깔끔하고, 재사용 가능하며, 유지보수도 쉬워집니다.
그럼 지금부터 C 함수의 세계로 출발해볼까요? 🚀
1. 함수란 무엇인가요?
함수는 프로그램 내에서 특정 작업을 수행하는 독립적인 코드 블록입니다.
C 언어에서는 main()
함수가 가장 먼저 실행되며,
우리가 직접 정의한 함수들도 필요할 때 호출해서 사용할 수 있어요.
🎯 목적: 중복 코드 제거, 논리적 구조화, 재사용성 향상
2. 함수의 기본 구조
반환형 함수이름(매개변수 목록) {
실행할 문장들;
return 반환값;
}
구성 요소 설명
구성 요소 | 설명 |
---|---|
반환형 | 함수가 실행된 후 반환하는 데이터 타입 (int , void , float 등) |
함수 이름 | 함수 호출 시 사용하는 이름 |
매개변수 | 함수에 전달되는 입력값 (없을 수도 있음) |
함수 본문 | 실행할 코드 블록 |
return | 결과를 호출한 쪽으로 반환 (void일 경우 생략 가능) |
3. 가장 간단한 함수 예제
예제 1: 인사하는 함수
#include <stdio.h>
void sayHello() {
printf("안녕하세요!
");
}
int main() {
sayHello(); // 함수 호출
return 0;
}
void
는 반환값이 없다는 뜻입니다.
sayHello()
는 단순히 메시지를 출력하고 끝나요.
4. 매개변수 있는 함수
예제 2: 두 수를 더하는 함수
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(3, 7);
printf("결과: %d
", result);
return 0;
}
int a
,int b
는 매개변수
add(3, 7)
은 함수 호출 시 인자 전달
반환값은result
변수에 저장
5. 반환값이 없는 함수 (void)
예제 3: 결과만 출력하는 함수
void printSum(int a, int b) {
printf("%d + %d = %d
", a, b, a + b);
}
int main() {
printSum(5, 8);
return 0;
}
결과만 출력하고 따로 값을 반환하지 않기 때문에
void
반환형을 사용합니다.
6. 함수 선언 (함수 원형)
C 언어에서는 함수가 호출되기 전에 함수의 형태를 미리 선언해줘야 할 때가 많습니다.
이걸 “함수 원형(prototype)“이라고 부릅니다.
int add(int a, int b); // 함수 원형
int main() {
int result = add(2, 3);
printf("%d
", result);
return 0;
}
int add(int a, int b) {
return a + b;
}
📌
main()
보다 아래쪽에 함수를 정의할 경우 꼭 함수 원형이 필요해요!
7. 함수 호출의 흐름
main() → 함수 호출 → 함수 실행 → return → 다시 main() 진행
함수는 호출된 위치로 돌아와 다음 문장을 실행합니다.
8. 함수의 장점
장점 | 설명 |
---|---|
코드 재사용성 | 여러 번 호출해서 반복되는 작업 처리 가능 |
가독성 향상 | 코드가 논리적으로 나뉘어 보기 쉬움 |
유지보수 용이 | 버그 수정이 쉽고 영향 범위 좁음 |
협업에 유리 | 작업을 기능 단위로 분리해 나눠 개발 가능 |
9. 다양한 반환형 함수 예시
실수형 반환
float divide(int a, int b) {
return (float)a / b;
}
문자 반환
char getFirstChar(char *str) {
return str[0];
}
10. 함수 작성 시 주의할 점
주의사항 | 설명 |
---|---|
반환형과 return값 일치해야 함 | int 함수는 반드시 int 반환 |
매개변수 자료형과 개수 일치 | 함수 호출 시 인자 개수와 순서 맞춰야 함 |
함수 이름 중복 금지 | 같은 이름의 함수 여러 개 선언 불가 |
함수는 정의 or 선언 필요 | 사용 전 미리 선언(원형)하거나 main보다 위에 정의 |
✅ 함수 기본 구조 요약
요소 | 예시 | 설명 |
---|---|---|
반환형 | int , void , float |
결과값의 타입 |
이름 | printSum , add |
함수의 고유 식별자 |
매개변수 | (int a, int b) |
입력값 |
return | return a + b; |
결과 반환 |
마무리하며 💬
함수는 코드의 재사용성과 구조적인 작성의 핵심입니다.
초보자 분들은 처음에 함수가 낯설게 느껴질 수 있지만,
한 번 구조에 익숙해지면 생산성이 어마어마하게 향상된답니다!
🎯 함수는 마치 ‘주방에 있는 조리도구’와 같아요.
매번 똑같은 동작을 반복하기보다, 도구처럼 꺼내 쓰면 훨씬 효율적이죠!
다음 편에서는 함수의 매개변수 전달 방식과
함수 호출 시 변수들이 어떻게 동작하는지를 심화적으로 알아볼게요 😊
지금까지 함수의 기본 구조 편이었습니다!
함수를 자유자재로 만들고 활용하는 실력,
우리 함께 키워나가요! 💻✨