예림이는 엄마에게 깨워달라고 부탁하려고 했는데, 엄마는 너무 바빴다. (식탁 차리기, 설겆이 등등)
엄마는 금방 끝난다고 말했지만, 끝나는데 얼마나 걸릴지 모르겠다.
예림이는 자기방에 들어가서 자고 싶었기 때문에 기다릴수가 없었다.
그래서 예림이는 엄마에게 일이 끝나면 알려달라고 하고, 자기 방으로 돌아왔다.
이제 예림이는 엄마옆에서 멍하니 기다리는 것보다 자기가 원하는 일(게임, 잠 등)을 할수 있다.
엄마는 내가 원하는 시간에 일을 끝내고(or 중단하고), 나를 깨워줄것이다.
// A simple C program to demonstrate callback
#include <stdio.h>
void daughter_ye_rim() {
printf("%s ", __func__);
printf("고등학교 등교하기\\n");
}
void daughter_ye_seul() {
printf("%s ", __func__);
printf("중학교 등교하기\\n");
}
void mother_wakes(void (*callback)()) {
(*callback)();
}
int main() {
void (*pfunc)(void) = NULL;
pfunc = &daughter_ye_rim;
mother_wakes(pfunc);
pfunc = &daughter_ye_seul;
mother_wakes(pfunc);
return 0;
}
콜백함수의 인자를 바꿀수 있다.