Publi

  • Callbacks, retrollamadas o delegados o cómo crear código más flexible en C

    Uno de los grandes objetivos de la programación es la de evitar repetirse. Ok, depende del contexto en el que estemos trabajando. Pero en general, querremos escribir poco cuando trabajamos en un proyecto (y así terminamos antes) y de paso que lo que escribamos para un programa nos sirva para otro (reaprovechamiento del código).

    Un callback nos permite llamar a una función u otra dependiendo de la ocasión. Imaginemos dos funciones y la función principal (la sintaxis utilizada nos es correcta, pero mi objetivo es que en este punto se vea claramente)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    void funcion_a()
    {
      printf("Has llamado a la función A");
    }  

    void funcion_x(funcion ayudante)
    {
      printf("Aquí procesamos información");
      ayudante();
      printf("Aquí seguimos procesando información");
    }

    int main()
    {
      funcion_x(funcion_a);
    }

    Lo que hcemos es llamar a función_x() y, como parámetro, le decimos que llame a funcion_a(), lo que conseguimos es que cuando funcion_x() esté ejecutándose, necesitará ayuda en algún momento de otra función, y desde main() decimos que esa función sea funcion_a().… Leer artículo completo