los prototipos son "pre declaraciones" de las funciones, fijate como se declaran al inicio del codigo, eso le dice al compilador que funciones habrán en el codigo, no saturas tanto antes del main y el codigo está listo para declaraciones sin importar el orden, el prototipo se declara exactamente igual que la funcion pero sin el contenido...
(más info)aqui un ejemplo más largo de como usarlos...
#include <stdlib.h>
#include <stdio.h>
int suma(int a, int b);
int cuadrado(int c);
void imprimirNumero(int d);
int main(){
int valor1 = suma(5,8);
int valor2 = cuadrado(5);
imprimirNumero(valor1);
imprimirNumero(valor2);
return 0;
}
int suma(int a, int b){
return (a+b);
}
int cuadrado(int c){
return (c*c);
}
void imprimirNumero(int d){
}