Ir al contenido principal

¿Qué es una función prototipo?


Vuelvo a las andadas con la programación, dentro de poco intentaré subir algún ejercicio en C que he hecho y más adelante la interfaz gráfica que estoy "diseñando" en Python (tkinter) para el programa youtube-dl.

El caso es que por una u otra razón, siempre le he temido un poco las funciones prototipo, cuando son la cosa más sencilla del mundo.


En resumidas cuentas, una función prototipo no es más que la declaración (con el tipo que retorna y sus parámetros (en C los parámetros son opcionales)) de una función sin definirla, colocándola en las primeras líneas de nuestra página.

De esta forma nos ahorramos errores de compilación indicándonos que una función está declarada después de main() y por lo tanto no puede ser llamada desde el propio main().

Un ejemplo.

int myChar(char letter); // función prototipo

void main() // declaración-implementación de main

{
   myChar('d'); // llamamos la función
}

int myChar(char letter)

{
   int num = letter - '0'; // convertimos el carácter introducido a su equivalente numérico  
   printf("%i\n", num); // lo mostramos
}

Básicamente esto hace que el compilador "vea" que existe la función (porque se ha declarado) y busca más adelante su definición, de otra manera llegaría a
main(), ejecutaría myChar() y diría algo así como "hey, aquí no hay ninguna función con ese nombre.


Importante: no se prototipa la función
main(), y así lo pone en la propia documentación de C. Sería absurdo, pues esta función es la propia ejecución de nuestro programa.


¡Ojo! Es perfectamente correcto declarar una función dentro de
main(), pero entonces su scope estará limitado a main().


Más info




Comentarios