[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_ptr
은 add
함수를 가리키고 있고, 이제 func_ptr
을 사용하여 add
함수를 호출할 수 있다.
함수 포인터를 사용하여 함수 호출
함수 포인터를 사용하여 함수를 호출하는 방법은 간단하다. (*func_ptr)(매개변수)
와 같이 사용하면 된다.
int result = (*func_ptr)(2, 3);
위 예제에서, (*func_ptr)(2, 3)
은 실제로 add(2, 3)
을 호출하는 것과 같은 효과가 있다.
함수 포인터를 사용하면 프로그램이 런타임 중에 다양한 함수를 호출하고 유연하게 제어할 수 있다.
이제 함수 포인터를 사용하여 함수를 호출하는 방법에 대해 이해하였다. 함수 포인터는 유용한 도구로, 프로그램의 유연성을 높이는 데 도움이 된다.
참고 자료
- The C Programming Language, 2nd Edition by Brian W. Kernighan and Dennis M. Ritchie
- GeeksforGeeks - Function Pointer in C