[c언어] 함수 포인터와 콜백 함수
프로그래밍에서 함수 포인터와 콜백 함수는 매우 유용하며 중요한 개념입니다. 함수 포인터를 사용하면 프로그램이 런타임에 동적으로 함수를 호출할 수 있고, 콜백 함수를 통해 이벤트 핸들링이나 비동기 작업을 처리할 수 있습니다.
함수 포인터
함수 포인터는 함수의 주소를 저장하는 변수입니다. 함수 포인터를 사용하면 프로그램이 런타임에 호출할 함수를 동적으로 선택할 수 있어 유연성이 높아지며, 함수를 매개변수로 전달하는 일부 함수형 프로그래밍 기법에도 활용됩니다.
#include <stdio.h>
void sayHello() {
printf("Hello, world!\n");
}
int main() {
void (*functionPtr)() = sayHello;
functionPtr();
return 0;
}
위의 예제에서 functionPtr
은 sayHello
함수의 주소를 저장하고 있습니다. 그리고 functionPtr
를 호출함으로써 sayHello
함수가 실행됩니다.
콜백 함수
콜백 함수는 다른 함수에 의해 호출되는 함수로, 보통 이벤트가 발생했을 때 호출되거나 비동기 작업의 완료를 처리할 때 사용됩니다. 주로 이벤트 핸들링, 정렬 알고리즘, 스레드 및 타이머 기능에서 활용됩니다.
#include <stdio.h>
void performOperation(int x, int y, void (*callback)(int)) {
int result = x + y;
callback(result);
}
void displayResult(int result) {
printf("The result is: %d\n", result);
}
int main() {
performOperation(5, 3, displayResult);
return 0;
}
위의 예제에서 performOperation
함수는 callback
매개변수를 통해 콜백 함수를 전달받고, 그 함수를 호출하여 결과를 전달합니다.
함수 포인터와 콜백 함수는 C언어에서 주로 사용되지만, 다른 프로그래밍 언어에서도 유사한 개념이 존재합니다. 이러한 개념을 이해하고 활용하면 프로그램의 유연성과 모듈화가 개선될 수 있습니다.