stringtranslate.com

Prototipo de función

En programación de computadoras , un prototipo de función es una declaración de una función que especifica el nombre de la función y la firma del tipo ( aridad , tipos de datos de parámetros y tipo de 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 (la "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 colocar declaraciones de funciones en archivos de encabezado permite dividir un programa en unidades de traducción , es decir, en partes que un compilador puede traducir por separado en archivos objeto . para ser combinado por un vinculador en un ejecutable o una biblioteca . La declaración de la función precede a la definición de la función y brinda detalles de nombre, tipo de retorno y clase de almacenamiento junto con otros atributos relevantes. [1]

Los prototipos de funciones se pueden utilizar cuando: [2]

En un prototipo, los nombres de los parámetros son opcionales (y en C/C++ tienen el alcance del prototipo de función , 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 al parámetro const ) excepto const solo.

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

Ejemplo

Considere el siguiente prototipo de función:

suma nula ( int a , int b );    

o

suma nula ( int , int );  

o

suma automática ( int , int ) -> nulo ; // Sólo C++     

Los prototipos de funciones incluyen la firma 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 firma 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. Tenga 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 inty 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.

char MiFunción ( int a ); /* Prototipo de función */   #include <stdio.h> #include <limits.h> int principal ( vacío ) {      putchar ( MiFunción ( -1 )); /* Llamada con el formato correcto */ putchar ( MyFunction ( 1.5 )); /* El compilador genera una advertencia debido a una falta de coincidencia de tipos */ putchar ( MyFunction ( "IncorrectArgType" )); /* El compilador generará una advertencia */ putchar ( MyFunction ()); /* El compilador generará un error con muy pocos argumentos */ int one = 1 ; putchar ( MiFunción ( INT_MAX + uno )); /* Aunque sumar 1 al número entero máximo  /* es un error, no se puede detectar en tiempo de compilación */                 devolver 0 ; } char MyFunction ( int n ) /* Definición de función */ { if ( n > 0 ) return '>' ; si ( n < 0 ) devuelve '<' ; devolver '=' ; }                  

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.

Crear interfaces de biblioteca

Al colocar prototipos de funciones en un archivo de encabezado , 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 clases .

Ver también

Referencias

  1. ^ TylerMSFT (25 de enero de 2023). "Prototipos de funciones". aprender.microsoft.com . Consultado el 9 de agosto de 2023 .
  2. ^ "Prototipos de funciones". www.ibm.com . 2018-10-25 . Consultado el 9 de agosto de 2023 .