[c언어] 함수 포인터를 사용하여 함수 호출

함수 포인터는 프로그램에서 다른 함수를 가리키는 포인터이다. 함수 포인터를 사용하면 런타임 중에 어떤 함수를 호출할지 결정할 수 있다. 이것은 함수 주소를 저장하기 때문에, 다른 함수와 마찬가지로 함수 포인터를 선언하고 초기화할 수 있다.

함수 포인터 정의

함수 포인터의 정의는 다음과 같다:

int (*func_ptr)(int, int);

위의 예제에서, func_ptr은 두 개의 int 타입 매개변수를 받아 int 타입을 반환하는 함수를 가리키는 함수 포인터이다.

함수 포인터 초기화

함수 포인터를 특정 함수로 초기화하기 위해서, 함수 이름 앞에 & 연산자를 사용할 필요는 없다. 단지 함수 포인터를 정의할 때와 같은 방법으로 함수를 호출하는 것과 같은 방법으로 함수 포인터에 할당하면 된다.

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

int (*func_ptr)(int, int) = add;

위 예제에서 func_ptradd 함수를 가리키고 있고, 이제 func_ptr을 사용하여 add 함수를 호출할 수 있다.

함수 포인터를 사용하여 함수 호출

함수 포인터를 사용하여 함수를 호출하는 방법은 간단하다. (*func_ptr)(매개변수)와 같이 사용하면 된다.

int result = (*func_ptr)(2, 3);

위 예제에서, (*func_ptr)(2, 3)은 실제로 add(2, 3)을 호출하는 것과 같은 효과가 있다.

함수 포인터를 사용하면 프로그램이 런타임 중에 다양한 함수를 호출하고 유연하게 제어할 수 있다.

이제 함수 포인터를 사용하여 함수를 호출하는 방법에 대해 이해하였다. 함수 포인터는 유용한 도구로, 프로그램의 유연성을 높이는 데 도움이 된다.

참고 자료