Red de conocimientos turísticos - Información de alquiler - ¿Qué es una función de devolución de llamada?

¿Qué es una función de devolución de llamada?

La función de devolución de llamada es una función llamada a través de un puntero de función.

Si un puntero de función (dirección) se pasa como parámetro a otra función, y cuando este puntero se usa para llamar a la función a la que apunta, se dice que es una función de devolución de llamada. La función de devolución de llamada no es llamada directamente por el implementador de la función, sino que es llamada por otra parte cuando ocurre un evento o condición específica para responder al evento o condición.

De todos modos, la función de devolución de llamada se hereda del lenguaje C. En C, las funciones de devolución de llamada solo deben usarse cuando se interactúa con código C o cuando se trata de una interfaz de devolución de llamada existente. Excepto en los casos anteriores, en C se deben utilizar métodos virtuales o functores en lugar de funciones de devolución de llamada.

Información ampliada

Beneficios de la función de devolución de llamada:

1. La función de devolución de llamada puede separar a la persona que llama y al destinatario, por lo que a la persona que llama no le importa quién es. llamado. Sólo necesita saber que hay una función llamada con un prototipo y restricciones específicos. En resumen, la función de devolución de llamada permite al usuario pasar el puntero de la función a llamar como parámetro a una función, de modo que la función pueda usar diferentes métodos de manera flexible cuando maneje eventos similares.

2. Las devoluciones de llamada se pueden utilizar como mecanismos de notificación. Por ejemplo, a veces es necesario configurar un temporizador en el programa A. Cada vez que se alcanza un tiempo determinado, el programa A recibirá la notificación correspondiente, pero el implementador del mecanismo de notificación no sabe nada sobre el programa A. Luego, se necesita un puntero de función con un prototipo específico para que la devolución de llamada notifique al programa A que se ha producido el evento. De hecho, la API utiliza una función de devolución de llamada SetTimer() para notificar al temporizador.

Función de devolución de llamada de la enciclopedia Baidu