Prototipo de función
# Prototipo de función

En programación, un prototipo de función o interfaz de función es una declaración de una función que especifica el nombre de la función y su signatura (aridad, tipo de datos de los parámetros y tipo del retorno), pero omite el cuerpo de la función. Mientras que la definición de una función especifica "cómo" la función hace lo que hace (su "implementación"), un prototipo de función simplemente especifica su interfaz, es decir, "qué" tipos de datos entran y salen de ella. El término "prototipo de función" se utiliza particularmente en el contexto de los lenguajes de programación C y C++, donde emplear declaraciones anticipadas de funciones en archivos de cabecera permite dividir un programa en unidades de traducción, es decir, en partes que un compilador puede traducir por separado en archivos de objetos, para ser combinados por un enlazador en un fichero ejecutable o una librería. La declaración de la función precede a la definición de la función y brinda detalles de su nombre, tipo de retorno y clase de almacenamiento junto con otros atributos relevantes.

Los prototipos de funciones se pueden utilizar cuando:

* Se desea definir un tipo externo
* Creación de una parte de interfaz

En un prototipo, los nombres de los parámetros son opcionales (y en C/C++ tienen el prototipo de función ámbito, lo que significa que su alcance termina al final del prototipo). Sin embargo, el tipo es necesario junto con todos los modificadores (por ejemplo, si es un puntero o un referencia a un parámetro constante) excepto constantes en solitario.

En programación orientada a objetos, las interfaces y los métodos abstractos tienen prácticamente el mismo propósito.

## Ejemplo

Considérese el siguiente prototipo de función:

O

O

Los prototipos de funciones incluyen la signatura de la función, el nombre de la función, el tipo de retorno y el especificador de acceso. En este caso el nombre de la función es "Suma". La signatura de la función define el número de parámetros y sus tipos. El tipo de devolución es "nulo". Esto significa que la función no devolverá ningún valor. Téngase en cuenta que los nombres de los parámetros en el primer ejemplo son opcionales.

## Usos

En las primeras versiones de C, si una función no se había declarado previamente y su nombre aparecía en una expresión seguida de un paréntesis izquierdo, se declaraba implícitamente como una función que devuelve un int y no se suponía nada sobre sus argumentos. En este caso, el compilador no podría realizar la verificación de validez en tiempo de compilación del número y tipo(s) de argumentos. El estándar C99 requiere el uso de prototipos.

La función MyFunction espera ser llamada con un argumento entero. Al incluir el prototipo de función, informa al compilador que la función toma un argumento entero y permite que el compilador detecte llamadas especificadas incorrectamente.

### Creando interfaces de biblioteca

Al colocar prototipos de funciones en un fichero cabecera, se puede especificar una interfaz para una biblioteca.

### Declaración de clase

En C++, los prototipos de funciones también se utilizan en las definiciones de clase.

