C 기본 문법 – 함수 – 0 – 함수의 기본 구조

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; 결과 반환

마무리하며 💬

함수는 코드의 재사용성과 구조적인 작성의 핵심입니다.
초보자 분들은 처음에 함수가 낯설게 느껴질 수 있지만,
한 번 구조에 익숙해지면 생산성이 어마어마하게 향상된답니다!

🎯 함수는 마치 ‘주방에 있는 조리도구’와 같아요.
매번 똑같은 동작을 반복하기보다, 도구처럼 꺼내 쓰면 훨씬 효율적이죠!

다음 편에서는 함수의 매개변수 전달 방식
함수 호출 시 변수들이 어떻게 동작하는지를 심화적으로 알아볼게요 😊

지금까지 함수의 기본 구조 편이었습니다!
함수를 자유자재로 만들고 활용하는 실력,
우리 함께 키워나가요! 💻✨

답글 남기기