본문 바로가기
C언어/C언어 기초

초급8강_C언어 함수(Function) 완전정복 – 정의, 호출, 매개변수까지 쉽게 배우기

by AI쌤 2025. 4. 18.
반응형

✅ C언어 함수(Function) 완전정복 – 정의, 호출, 매개변수까지 쉽게 배우기

C언어 프로그램이 길어지고 복잡해질수록,
코드를 더 짧고 효율적으로 만들기 위한 방법이 필요합니다.
그 해답이 바로 **함수(Function)**입니다!

이번 강의에서는 함수의 기본 개념, 정의/호출 방법, 매개변수와 반환값에 대해 자세히 알아봅니다.


🧠 함수란?

함수(Function)는 특정 작업을 수행하는 코드 묶음입니다.
자주 사용되는 코드를 함수로 만들어 두면 재사용, 유지보수, 가독성이 좋아집니다.


🧱 함수의 구조

반환형 함수이름(매개변수목록)
{
    실행할 코드;
    return 값;
}

📌 예제: 두 수를 더하는 함수

int add(int a, int b)
{
     return a + b;
}

호출:

int result = add(3, 5);    // result = 8

🛠 함수 정의 방식

  1. 함수 선언 (선언만 먼저 해놓기 - 함수 프로토타입)
  2. 함수 정의 (실제 코드 구현)
  3. 함수 호출

✍ 함수 선언(프로토타입)

int add(int a, int b);

✅ 주로 main() 함수 위에서 선언
✅ main() 아래에 함수 정의해도 문제 없음 (선언만 되어 있으면)


📥 매개변수(Parameter)

함수 호출 시 전달하는 입력값

void greet(char name[ ])
{
     printf("Hello, %s!\n", name);
}

호출 예:

greet("홍길동");


📤 반환값(Return)

함수의 실행 결과를 값으로 돌려주는 것

float getPi()
{
    return 3.14;
}

호출 예:

float pi = getPi();


🔄 값 전달 방식 (Call by Value)

C언어는 기본적으로 값을 복사하여 함수에 전달합니다.

void change(int num)
{
     num = 100;
}
 
int main()
{
     int a = 10;
     change(a);
     printf("%d", a);      // 여전히 10
}

✅ 원본 변수에는 영향 없음


✨ 실전 예제: 최대값 함수

int max(int a, int b)
{
     if (a > b)
           return a;
     else
           return b;
}

📌 void 함수

void는 반환값이 없는 함수에 사용됩니다.

void printHello()
{
     printf("안녕하세요!\n");
}

🎯 과제

  1. 두 수를 입력받아 곱셈 결과를 반환하는 함수 작성
  2. 입력한 숫자가 짝수인지 홀수인지 판단하는 함수 작성
  3. 학생 점수 5개를 입력받아 평균을 구하는 함수 작성

📚 보너스: 함수 vs 메인 함수

  • main() 도 하나의 함수!
  • main() 안에서 다양한 함수를 호출하며 프로그램을 구성

🗣 다음 주 예고: 포인터(Pointer)의 세계로 입문!

함수는 변수와 데이터를 주고받는 데 매우 유용했죠?
다음 시간에는 메모리 주소를 직접 다루는 포인터(pointer) 를 배웁니다.

반응형