Function Pointer란?
우리말로 함수포인터라고도 한다.
C 언어의 경우 함수자체를 변수로 만들 수는 없다.
대신 함수를 포인터 하는 것은 가능한데, 이것을 통해서 함수를 포인터처럼 사용할 수
있으며, 이 포인터가 가르키고 있는 곳의 함수를 실행 시킬 수도 있다.
Generic한 함수의 작성을 가능하게 하기 때문에 함수포인터를 사용하게 된다.
Declaration (선언)
포인터는 하나의 자료 형임으로 포인터가 가르키는 데이타의 타입정보를 이용해서
포인터를 선언해줘야 한다.
물론 함수포인터의 경우 포인터하는 대상이 데이타가 아니고 함수라는 점이 다를 뿐이다.
다음은 함수포인터를 선언하기 위한 전형적인 방법이다.
return_type (*function)(arg1, arg2, ...);
이해하기 쉽게, 만약 int hello(char *) 라는 함수를 가르키는 함수포인터를
선언하고자 한다면 아래와 같이 하면 된다.
int (*function_name)(char *);
예제
#include
void hello(char *name)
{
printf ("Hi %s\n", name);
}
int main()
{
void (*Func)(char *);
Func = hello;
Func("test");
}