함수 포인터(Function Pointer)는 함수의 시작 주소를 저장하는 변수다.
이를 통해 함수를 변수처럼 다루거나, 다른 함수의 인자로 전달할 수 있다.
기본 문법 및 활용:
– 선언: 반환형 (*포인터이름)(매개변수타입);
– 할당: 포인터이름 = 함수이름;
– 호출: (*포인터이름)(인자); 또는 포인터이름(인자);
함수 포인터는 콜백(Callback) 함수를 구현하거나, 실행 시점에 동작을 동적으로 결정해야 하는 전략 패턴 등을 C언어에서 구현할 때 필수적이다.
함수도 메모리 어딘가에 주소를 가지고 있다는 사실이 흥미롭다.
함수 포인터를 사용하면 코드의 유연성이 획기적으로 높아진다는 것을 배웠다.
특히 정렬 알고리즘에서 비교 로직만 함수 포인터로 갈아 끼우는 방식이 인상적인 것 같다.