[c언어] 함수 포인터란 무엇인가?

함수 포인터는 C 프로그래밍 언어에서 매우 유용한 개념입니다. 함수 포인터는 다른 함수를 가리키는 포인터로, 실제로 함수 포인터를 사용하면 프로그램이 런타임 중에 함수를 동적으로 호출할 수 있습니다.

함수 포인터의 선언

함수 포인터는 함수의 반환 유형과 매개 변수 유형에 따라 선언됩니다. 일반적으로 다음과 같이 선언됩니다.

반환_유형 (*포인터_이름)(매개변수_유형);

예를 들어, 정수를 반환하고 정수 매개변수 하나를 갖는 함수 포인터는 다음과 같이 선언할 수 있습니다.

int (*ptr)(int);

함수 포인터의 활용

함수 포인터를 사용하면 배열이나 구조체와 같은 데이터 구조에 함수를 저장하고, 이를 동적으로 선택하여 실행할 수 있습니다. 또한 함수 포인터를 사용하면 콜백 함수와 같은 기능을 구현할 수 있습니다.

아래는 함수 포인터를 사용한 간단한 예제 코드입니다.

#include <stdio.h>

void sayHello() {
    printf("Hello, Function Pointer!\n");
}

int main() {
    // 함수 포인터 선언
    void (*ptr)() = sayHello;

    // 함수 포인터로 함수 호출
    ptr();

    return 0;
}

위의 예제 코드에서 ptrsayHello 함수를 가리키고, 이를 통해 sayHello 함수를 호출합니다.

함수 포인터는 복잡해 보일 수 있지만, 한 번 익숙해지면 매우 유용하게 활용할 수 있는 강력한 도구입니다.

결론

함수 포인터는 C 프로그래밍에서의 강력한 기능 중 하나로, 함수의 동적 호출과 다양한 활용이 가능하게 합니다. 함수 포인터를 활용하여 프로그램의 유연성과 확장성을 높일 수 있습니다.

더 많은 정보는 다음 참고 자료를 참조하세요.