¿Cuál es el propósito de esta línea? (Declaración de función)

Estoy trabajando en K&R para aprender a programar. Va bien hasta ahora, pero no estoy claro sobre el papel de una línea de código de la sección 1.8 (funciones).

En la sección 1.8, los autores le muestran cómo crear una función para elevar un entero a la potencia de otro entero.

He pegado el código a continuación, tal como estaba escrito en el libro. Todo sale bien. Pero no sé por qué han incluido esta línea en la parte superior:

int power(int m, int n);

El libro no lo menciona, aparte de decir que el programa elevará el entero m a la potencia n. Si elimino la línea del código, el programa aún sale como debería.

Si entiendo esto correctamente, la línea

int power(int base, int n)

crea la función, y las llaves debajo definen la función. Luego, las llaves debajo de main llaman a la función para generar el gráfico.

Así que todo eso parece tener sentido. Pero no veo lo que hace la línea superior.

Podría ser extraño, pero parece mucho más probable que me falte algo. ¿Alguien puede aclararme por qué esa línea está ahí?

#include <stdio.h>

int power(int m, int n);

/* test power function */
main()
{
int i;

    for (i = 0; i < 10; ++i)
        printf("%d %d %d\n", i, power(2,i), power(-3, i));
    return 0;
}

/* power: raise base to n-th power; n >= 0 */

int power(int base, int n)
{
    int i, p;

    p = 1;
    for (i = 1; i <= n; ++i)
        p = p * base;
    return p;
}

Respuestas a la pregunta(12)

Su respuesta a la pregunta