[c언어] 함수 포인터와 함수 포인터의 배열 참조 값

C 언어에서 함수 포인터는 다른 함수를 가리키기 위한 포인터입니다. 이는 함수를 인수로 받아들이거나 함수를 반환하는 함수를 정의하거나, 함수를 배열에 저장하여 유연하게 사용할 수 있는 장점을 가지고 있습니다. 이번 글에서는 함수 포인터와 함수 포인터의 배열을 사용하면서 어떻게 참조 값을 다루는지 살펴보겠습니다.

함수 포인터의 선언과 사용

#include <stdio.h>

void hello() {
    printf("Hello, ");
}

void world() {
    printf("world!\n");
}

int main() {
    void (*functionPtr)();  // 함수 포인터 선얺
    functionPtr = hello;    // 함수 포인터에 hello 함수 할당
    (*functionPtr)();       // 함수 포인터로 hello 함수 호출

    functionPtr = world;    // 함수 포인터에 world 함수 할당
    (*functionPtr)();       // 함수 포인터로 world 함수 호출

    return 0;
}

위의 예제에서 functionPtrhello 함수와 world 함수를 가리키는 함수 포인터입니다. 함수 포인터를 사용하여 함수를 호출할 때는 (*functionPtr)() 형식으로 사용합니다.

함수 포인터의 배열

#include <stdio.h>

void add(int a, int b) {
    printf("Addition: %d\n", a + b);
}

void subtract(int a, int b) {
    printf("Subtraction: %d\n", a - b);
}

void multiply(int a, int b) {
    printf("Multiplication: %d\n", a * b);
}

int main() {
    void (*functionPtrArray[3])(int, int) = {add, subtract, multiply};  // 함수 포인터 배열

    for (int i = 0; i < 3; i++) {
        (*functionPtrArray[i])(10, 5);  // 함수 포인터 배열을 사용하여 함수 호출
    }

    return 0;
}

위의 예제에서 functionPtrArray는 함수 포인터들의 배열을 나타내며, 해당 배열을 사용하여 각각의 함수를 호출하는 방법을 보여줍니다.

함수 포인터와 함수 포인터의 배열은 함수를 유연하게 사용하고 호출하기 위한 강력한 도구입니다. 이러한 기능을 활용하여 코드를 모듈화하고 다양한 상황에 대응할 수 있습니다.

결론

C 언어의 함수 포인터와 함수 포인터 배열은 코드의 유연성을 높이고, 함수의 동적인 호출을 가능하게 합니다. 이를 통해 다양한 상황에서 효과적으로 함수를 관리하고 호출할 수 있습니다.

이상으로 함수 포인터와 함수 포인터 배열에 대한 간략한 소개를 마치도록 하겠습니다. 감사합니다.

참고문헌