함수 포인터 (function pointer) 사용 예제 코드
본 글은 함수 포인터(function pointer)사용 법과 어디에 함수 포인터가 사용될 수 있는지 그 예를 싣고 있다. 함수 포인터 (function pointer) 함수 포인터는 해당 함수를 호출할 수 있도록 함수의 주소를 변수에 저장하는 것이다. 아래와 같이 함수를 만들고, plus 변수에 adder 함수의 주소를 할당해 사용할 수 있다. int adder(int x, int y) { return x + y; } int main() { int result = 0; int(*plus)(int, int); plus = adder; result = plus(1, 2); return 0; } 또, typedef 문을 사용하여 변수 타입으로도 선언하여 사용할 수 있다. 함수의 파라메터와 리턴 타입이 동일 해야 한다. typedef int(*add_func)(int x, int y); add_func plus = adder; result = plus(2, 3); 함수 포인터 사용 Callback 함수 포인터는 Callback 함수를 등록에 유용하게 사용할 수 있다. 예를 들면 아래와 같이 filter함수 포인터를 callback으로 받아 사용할 수 있다. 이경우에는 passfilter를 호출할 때 필요에 따라 다른 필터를 사용할 수 있어 구현하고자 하는 목적에 맞게 사용할 수 있다. 물론 passfilter를 여러 필터에 맞게 여러 함수로 구현할 수도 있지만, 코드 구현 시 callback을 사용하는 것이 장점이 되는 경우도 있다. int passfilter(double *data, int len, double (*filter)(double x)) { int i = 0; if (!data || ...