Un prototipo de función en C ofrece información importante para el compilador

Para entender mejor este concepto he creído necesario hacernos las siguientes interrogaciones:

A que se dedica el prototipo de función en C?
Un prototipo de función en C pasa información importante para el compilador.

Que tipo de información ofrece el prototipo de función en C al compilador?
Las principales informaciones que ofrece el prototipo de función en C son el tipo de dato que retorna la función, el número, el tipo y el orden de parámetros que recibe la misma.

Para qué utiliza el compilador a los prototipos?
El compilador utiliza a los prototipos para verificar las llamadas a funciones. Antiguamente no existía el prototipado por lo cual muchas veces se generaban errores de todo tipo en el uso del lenguaje. Esto será detallado más adelante.

Hagamos un ejemplo de Prototipo de funcion en C:
int maximo(int, int, int);

Este ejemplo de prototipo o declaración de funcion en C indica 2 cosas importantes que el compilador debe llevar en cuenta:
  1. Que la función de nombre "maximo" va a retornar como resultado un valor de tipo entero ("int"). 
  2. Que la función de nombre "maximo" debe ser llamada con tres parámetros del tipo entero ("int").
 Otro importante beneficio de los prototipos o declaraciones de funciones en C:
El prototipo o declaración de funciones en C tambien sirve para la "coerción de argumentos", osea si la función es llamada con valores de otro tipo que sean diferentes a los definidos en el prototipo de esa función, el compilador "intentará" convertir esos valores a los tipos de datos correspondientes declarados en el prototipo (esto siempre y cuando sea posible esa conversión entre esos tipos de datos.). Por ejemplo si la función espera un entero y recibe un decimal, esta intentará convertir ese decimal a entero truncando la parte decimal, lo cual puede generar errores si la exactitud de ese dato es importante. Por esta razón es importante tomar en cuenta el tema de la "Coerción de argumentos", la cual puede estar en modo automático y acabar perjudicando el desenvolvimiento del proyecto.

Nota: Cabe resaltar que el prototipado o declaración de funciones en C puede omitirse cuando se está programando; con esta omisión el compilador formará el prototipo o declaración dependiendo de la primera aparición de la función.
En el ejemplo en caso de omisión del prototipado el compilador asumirá que toda función regresa un valor del tipo entero de forma predeterminada.

0 comments so far,add yours