[c언어] 함수 포인터의 활용 예시

함수 포인터는 C 언어에서 매우 유용하게 활용될 수 있습니다. 함수 포인터를 사용하여 함수를 동적으로 호출하거나 함수를 다른 함수의 매개변수로 전달할 수 있습니다. 이를 통해 코드의 재사용성을 높이고 유연성을 확보할 수 있습니다. 다음은 함수 포인터를 사용한 간단한 예시를 살펴보겠습니다.

예시: 함수 포인터를 사용한 계산기 프로그램

#include <stdio.h>

// 덧셈 함수
int add(int a, int b) {
    return a + b;
}

// 뺄셈 함수
int subtract(int a, int b) {
    return a - b;
}

// 곱셈 함수
int multiply(int a, int b) {
    return a * b;
}

// 나눗셈 함수
int divide(int a, int b) {
    if (b != 0) {
        return a / b;
    } else {
        return -1; // 에러를 나타내는 값
    }
}

int main() {
    // 함수 포인터 선언
    int (*calculator)(int, int);

    // 덧셈 함수를 가리키도록 포인터 설정
    calculator = add;
    printf("덧셈 결과: %d\n", calculator(10, 5)); 

    // 뺄셈 함수를 가리키도록 포인터 설정
    calculator = subtract;
    printf("뺄셈 결과: %d\n", calculator(10, 5)); 

    // 곱셈 함수를 가리키도록 포인터 설정
    calculator = multiply;
    printf("곱셈 결과: %d\n", calculator(10, 5)); 

    // 나눗셈 함수를 가리키도록 포인터 설정
    calculator = divide;
    printf("나눗셈 결과: %d\n", calculator(10, 5)); 

    return 0;
}

위의 예시 코드에서는 int (*calculator)(int, int);와 같이 함수 포인터 calculator를 선언하고, 각각의 사칙연산 함수를 가리키도록 포인터를 설정한 후 호출하는 예시를 보여줍니다.

함수 포인터를 이용하면 계산기 프로그램에서 함수를 동적으로 교체하고 관리하는데 유용하게 활용할 수 있습니다.

이렇듯 함수 포인터는 C 언어에서 다양한 상황에서 유연한 프로그래밍을 가능하게 해주는 강력한 도구입니다.

참고 자료