이벤트 핸들러 함수를 통해서 콜백함수의 유용성에 대해 알아보자.
아래 그림은 버튼을 클릭했을 때, Hello, World가 출력되는 매우 간단한 C# 프로그램이다. C#, Java, C++ 모두 상관없다.
버튼을 눌렀을 때 실행할 함수를 미리 등록 시켜놓고, 버튼이 누르면 그 함수를 호출하는 구조가 바로 콜백 함수 이다.
#include <stdio.h>
// 콜백 함수 타입 정의
//typedef void (*ButtonCallback)(void);
// 콜백 함수의 등록
//void button_click(ButtonCallback callback) {
void up_button_press(void (*callback)(void)) {
//printf("up 버튼이 클릭되었습니다.\\n");
callback(); // 콜백 함수 호출
}
void down_button_press(void (*callback)(void)) {
//printf("down 버튼이 클릭되었습니다.\\n");
callback(); // 콜백 함수 호출
}
// 버튼이 눌렸을때 실제 동작 함수
void up_button_pressed() {
printf("이벤트: up 버튼 클릭 처리가 완료되었습니다.\\n");
}
void down_button_pressed() {
printf("이벤트: down 버튼 클릭 처리가 완료되었습니다.\\n");
}
int main() {
up_button_press(&up_button_pressed); // up 버튼 클릭 이벤트 등록
down_button_press(&down_button_pressed);
return 0;
}