C - Funciones
Una función es un grupo de declaraciones que juntas realizan una tarea. Cada programa C tiene al menos una función, que esmain(), y todos los programas más triviales pueden definir funciones adicionales.
Puede dividir su código en funciones separadas. La forma en que divide su código entre las diferentes funciones depende de usted, pero lógicamente la división es tal que cada función realiza una tarea específica.
Una función declarationle dice al compilador sobre el nombre de una función, el tipo de retorno y los parámetros. Una funcióndefinition proporciona el cuerpo real de la función.
La biblioteca estándar de C proporciona numerosas funciones integradas que su programa puede llamar. Por ejemplo,strcat() para concatenar dos cadenas, memcpy() para copiar una ubicación de la memoria a otra ubicación, y muchas más funciones.
Una función también puede denominarse método, subrutina o procedimiento, etc.
Definición de una función
La forma general de una definición de función en el lenguaje de programación C es la siguiente:
return_type function_name( parameter list ) {
body of the function
}
Una definición de función en la programación C consta de un encabezado de función y un cuerpo de función . Aquí están todas las partes de una función:
Return Type- Una función puede devolver un valor. losreturn_typees el tipo de datos del valor que devuelve la función. Algunas funciones realizan las operaciones deseadas sin devolver un valor. En este caso, return_type es la palabra clavevoid.
Function Name- Este es el nombre real de la función. El nombre de la función y la lista de parámetros juntos constituyen la firma de la función.
Parameters- Un parámetro es como un marcador de posición. Cuando se invoca una función, se pasa un valor al parámetro. Este valor se conoce como parámetro o argumento real. La lista de parámetros se refiere al tipo, orden y número de parámetros de una función. Los parámetros son opcionales; es decir, una función puede no contener parámetros.
Function Body - El cuerpo de la función contiene una colección de declaraciones que definen lo que hace la función.
Ejemplo
A continuación se muestra el código fuente de una función llamada max(). Esta función toma dos parámetros num1 y num2 y devuelve el valor máximo entre los dos -
/* function returning the max between two numbers */
int max(int num1, int num2) {
/* local variable declaration */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
Declaraciones de funciones
Una función declarationle dice al compilador sobre el nombre de una función y cómo llamar a la función. El cuerpo real de la función se puede definir por separado.
Una declaración de función tiene las siguientes partes:
return_type function_name( parameter list );
Para la función max () definida anteriormente, la declaración de función es la siguiente:
int max(int num1, int num2);
Los nombres de los parámetros no son importantes en la declaración de funciones, solo se requiere su tipo, por lo que lo siguiente también es una declaración válida:
int max(int, int);
La declaración de función es necesaria cuando define una función en un archivo fuente y llama a esa función en otro archivo. En tal caso, debe declarar la función en la parte superior del archivo que llama a la función.
Llamar a una función
Al crear una función C, da una definición de lo que tiene que hacer la función. Para usar una función, tendrá que llamar a esa función para realizar la tarea definida.
Cuando un programa llama a una función, el control del programa se transfiere a la función llamada. Una función llamada realiza una tarea definida y cuando se ejecuta su declaración de retorno o cuando se alcanza su llave de cierre de finalización de función, devuelve el control del programa al programa principal.
Para llamar a una función, simplemente necesita pasar los parámetros requeridos junto con el nombre de la función, y si la función devuelve un valor, entonces puede almacenar el valor devuelto. Por ejemplo
#include <stdio.h>
/* function declaration */
int max(int num1, int num2);
int main () {
/* local variable definition */
int a = 100;
int b = 200;
int ret;
/* calling a function to get max value */
ret = max(a, b);
printf( "Max value is : %d\n", ret );
return 0;
}
/* function returning the max between two numbers */
int max(int num1, int num2) {
/* local variable declaration */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
Hemos mantenido max () junto con main () y hemos compilado el código fuente. Mientras se ejecuta el ejecutable final, producirá el siguiente resultado:
Max value is : 200
Argumentos de función
Si una función va a utilizar argumentos, debe declarar variables que acepten los valores de los argumentos. Estas variables se denominanformal parameters de la función.
Los parámetros formales se comportan como otras variables locales dentro de la función y se crean al entrar en la función y se destruyen al salir.
Al llamar a una función, hay dos formas en que se pueden pasar argumentos a una función:
No Señor. | Tipo de llamada y descripción |
---|---|
1 | Llamar por valor Este método copia el valor real de un argumento en el parámetro formal de la función. En este caso, los cambios realizados en el parámetro dentro de la función no tienen ningún efecto en el argumento. |
2 | Llamar por referencia Este método copia la dirección de un argumento en el parámetro formal. Dentro de la función, la dirección se usa para acceder al argumento real usado en la llamada. Esto significa que los cambios realizados en el parámetro afectan el argumento. |
De forma predeterminada, C usa call by valuepara pasar argumentos. En general, significa que el código dentro de una función no puede alterar los argumentos utilizados para llamar a la función.