상세 컨텐츠

본문 제목

c언어 함수 선언과 정의

C_language

by 헬로제이콥 2024. 8. 27. 02:42

본문

 

 

 

 

 

 

1. 함수의 개념 설명

함수는 "작업을 하는 작은 기계"라고 생각하면 됩니다. 우리가 수학에서 계산기를 사용해서 덧셈을 한다고 생각해보세요. 함수는 특정 작업을 수행하는 코드 블록입니다.

  • 함수 선언: 이 함수가 무엇을 하는지, 어떤 입력을 받을 수 있는지, 어떤 결과를 반환하는지를 알려주는 것이에요.
  • 함수 정의: 실제로 그 함수가 어떤 작업을 수행하는지를 구현한 부분이에요.
#include <stdio.h>

// 함수 정의
void sayHello() {
    printf("Hello, World!\n"); // 이 함수가 실행되면 "Hello, World!"를 출력합니다.
}

int main() {
    sayHello(); // sayHello 함수를 호출합니다.
    return 0;
}

--------------------------------------------------------------------------------
팁!!
함수를 위에 써야 컴파일러가 에러없이 함수를 실행해요.
그러나 여러사정으로 main 함수 아래로 이동해야 하는 경우는
아래 예제 처럼  void sayHello(); 쓰면 에러가 나지 않습니다.
--------------------------------------------------------------------------------

 

팁!! 함수를 위에 써야 컴파일러가 에러없이 함수를 실행해요. 그러나 여러사정으로 main 함수 아래로 이동해야 하는 경우는 아래 예제 처럼 void sayHello(); 쓰면 에러가 나지 않습니다.

 

#include <stdio.h>

// 함수 선언
void sayHello(); // sayHello 함수가 있을 것이라고 컴퓨터에 알려줍니다.

int main() {
    sayHello(); // sayHello 함수를 호출합니다.
    return 0;
}

// 함수 정의
void sayHello() {
    printf("Hello, World!\n"); // 이 함수가 실행되면 "Hello, World!"를 출력합니다.
}
  • 위의 예제에서 sayHello는 함수의 선언과 정의를 보여줍니다.
  • sayHello 함수는 "Hello, World!"를 화면에 출력합니다.

 

2. 매개변수와 반환값

개념 설명

  • 매개변수: 함수가 작업을 수행하는 데 필요한 입력값이에요. 예를 들어, 덧셈을 하려면 두 숫자가 필요하겠죠?
  • 반환값: 함수가 작업을 끝내고 주는 결과값이에요. 덧셈을 하면 결과로 합이 나옵니다.

 

코드 설명

#include <stdio.h>

// 함수 선언
int add(int a, int b); // 두 개의 정수를 받아서 정수를 반환하는 add 함수

int main() {
    int result = add(5, 3); // 5와 3을 더한 결과를 result 변수에 저장합니다.
    printf("Result: %d\n", result); // 결과를 출력합니다.
    return 0;
}

// 함수 정의
int add(int a, int b) {
    return a + b; // 두 매개변수 a와 b를 더한 값을 반환합니다.
}
  • add 함수는 두 개의 숫자를 받아서 그 합을 반환합니다.
  • main 함수에서 add(5, 3)을 호출하면, 5와 3의 합인 8을 반환받아 출력합니다.

 

C 언어로 이름과 나이를 입력받아 출력하는 함수 만들기

코드 설명

#include <stdio.h>

void print_info(char name[], int age) {
    printf("이름: %s\n", name);
    printf("나이: %d세\n", age);
}

int main() {
    char name[20];
    int age;

    printf("이름을 입력하세요: ");
    scanf("%s", name);

    printf("나이를 입력하세요: ");
    scanf("%d", &age);

    print_info(name, age);

    return 0;
}

 

C 언어로 두 수를 곱하고, 더하고, 빼고, 나누는 함수 만들기

코드 설명

#include <stdio.h>

void calculate(int a, int b) {
    int sum = a + b;
    int difference = a - b;
    int product = a * b;
    float quotient = (float)a / b; // 나눗셈 결과를 실수로 저장하기 위해 형 변환

    printf("두 수의 합: %d\n", sum);
    printf("두 수의 차: %d\n", difference);
    printf("두 수의 곱: %d\n", product);
    printf("두 수의 나눗셈: %.2f\n", quotient); // 소수점 둘째 자리까지 출력
}

int main() {
    int num1 = 10, num2 = 20;
    calculate(num1, num2);
    return 0;
}

 

3. 재귀 함수

개념 설명

재귀 함수는 자신을 호출하는 함수입니다. 마치 거울을 보고 있을 때 거울 속의 거울이 계속 반복되는 것처럼요.

  • 기본 개념: 재귀 함수는 작업을 더 작은 부분으로 나누어 반복합니다. 종료 조건이 있어야 무한 루프에 빠지지 않습니다.

코드 설명

#include <stdio.h>

// 함수 선언
int factorial(int n); // n의 팩토리얼을 계산하는 함수

int main() {
    int number = 5;
    int result = factorial(number); // 5의 팩토리얼을 계산합니다.
    printf("Factorial of %d is %d\n", number, result);
    return 0;
}

// 함수 정의
int factorial(int n) {
    if (n == 0) { // 종료 조건
        return 1; // 0!은 1입니다.
    } else {
        return n * factorial(n - 1); // n! = n * (n-1)!
    }
}
  • factorial 함수는 자신을 호출하여 n의 팩토리얼을 계산합니다.
  • factorial(5)는 5 * factorial(4)를 호출하고, factorial(4)는 4 * factorial(3)를 호출하는 식으로 진행됩니다.
  • 종료 조건이 되어 n이 0이 되면, 1을 반환하여 재귀 호출이 종료됩니다.

 

요약

  1. 함수 선언과 정의: 함수가 무엇을 하는지 선언하고, 실제 작업을 구현하는 부분입니다.
  2. 매개변수와 반환값: 함수가 필요한 입력값(매개변수)을 받고, 작업 후 결과값(반환값)을 줍니다.
  3. 재귀 함수: 자기 자신을 호출하여 문제를 해결하는 함수입니다. 종료 조건이 필요합니다.

 

관련글 더보기