C - Funciones
Una función es un grupo de declaraciones que juntas realizan una tarea. Cada programa en C tiene al menos una función, que es main() , y todos los programas más triviales pueden definir funciones adicionales.
Puede dividir su código en funciones separadas. Cómo divides tu código entre diferentes funciones depende de ti, pero lógicamente la división es tal que cada función realiza una tarea específica.
Una función declaración le dice al compilador sobre el nombre de una función, el tipo de devolución y los parámetros. Una función definición 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 memoria a otra ubicación y muchas funciones más.
Una función también puede denominarse método, subrutina, 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 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 −
-
Tipo de devolución − Una función puede devolver un valor. El tipo_retorno es 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 clave void .
-
Nombre de la función − 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.
-
Parámetros − Un parámetro es como un marcador de posición. Cuando se invoca una función, pasa un valor al parámetro. Este valor se denomina parámetro o argumento real. La lista de parámetros se refiere al tipo, orden y número de los parámetros de una función. Los parámetros son opcionales; es decir, una función puede no contener parámetros.
-
Cuerpo de función − El cuerpo de la función contiene una colección de sentencias 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 declaración le 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 la 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 la 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, se da una definición de lo que tiene que hacer la función. Para usar una función, deberá 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 la llave de cierre de fin 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, puede almacenar el valor devuelto. Por ejemplo −
Demostración en vivo#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; }
Mantuvimos max() junto con main() y compilamos el código fuente. Al ejecutar el ejecutable final, produciría el siguiente resultado:
Max value is : 200
Argumentos de función
Si una función va a usar argumentos, debe declarar variables que acepten los valores de los argumentos. Estas variables se denominan parámetros formales de la función.
Los parámetros formales se comportan como otras variables locales dentro de la función y se crean al ingresar a la función y se destruyen al salir.
Al llamar a una función, hay dos formas en que los argumentos se pueden pasar a una función:
Sr.No. | 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 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 al argumento. |
De forma predeterminada, C usa llamada por valor para pasar argumentos. En general, significa que el código dentro de una función no puede alterar los argumentos usados para llamar a la función.
Lenguaje C
- Tipos de funciones definidas por el usuario en programación C
- Pasar arreglos a una función en C
- Funciones de biblioteca estándar de C
- Funciones Python Lambda con EJEMPLOS
- Funciones de Verilog
- C - Campos de bits
- C - E/S de archivo
- C - Argumentos variables
- Polimorfismo en C++
- MATLAB - Funciones
- C# - Métodos