logo

Funciones C

A función en C es un conjunto de declaraciones que cuando se llaman realizan alguna tarea específica. Es el componente básico de un programa en C que proporciona modularidad y reutilización del código. Las declaraciones de programación de una función están encerradas dentro { } llaves , teniendo ciertos significados y realizando ciertas operaciones. También se les llama subrutinas o procedimientos en otros idiomas.

En este artículo, aprenderemos sobre funciones y definición de funciones. declaración, argumentos y parámetros, valores de retorno y muchos más.



Sintaxis de funciones en C

La sintaxis de la función se puede dividir en 3 aspectos:

    Declaración de función Definición de función Llamadas a función

Declaraciones de funciones

En una declaración de función, debemos proporcionar el nombre de la función, su tipo de retorno y el número y tipo de sus parámetros. Una declaración de función le dice al compilador que hay una función con el nombre de pila definido en otra parte del programa.

Sintaxis

return_type name_of_the_function  ( parameter_1 , parameter_2 );>

El nombre del parámetro no es obligatorio al declarar funciones. También podemos declarar la función sin usar el nombre de las variables de datos.



Ejemplo

int sum (int a , int b ); int sum (int , int);>
Declaración de función

Declaración de función

Nota: Una función en C siempre debe declararse globalmente antes de llamarla.

Definición de función

La definición de función consta de declaraciones reales que se ejecutan cuando se llama a la función (es decir, cuando el control del programa llega a la función).



Una función C generalmente se define y declara en un solo paso porque la definición de la función siempre comienza con la declaración de la función, por lo que no es necesario declararla explícitamente. El siguiente ejemplo sirve como definición de función y como declaración.

return_type function_name (para1_type  para1_name,  para2_type  para2_name ) { // body of the function }>
Definición de función en C

Definición de función en C

Llamada de función

Una llamada a función es una declaración que indica al compilador que ejecute la función. Usamos el nombre de la función y los parámetros en la llamada a la función.

En el siguiente ejemplo, se llama a la primera función de suma y se pasan 10,30 a la función de suma. Después de que se devuelve la llamada a la función, se devuelve la suma de a y b y el control también se devuelve a la función principal del programa.

Trabajo de función en C

Trabajo de función en C

Nota: La llamada a la función es necesaria para llevar el control del programa a la definición de la función. Si no se llama, las declaraciones de función no se ejecutarán.

Ejemplo de función C

C




// C program to show function> // call and definition> #include> // Function that takes two parameters> // a and b as inputs and returns> // their sum> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >// Calling sum function and> >// storing its value in add variable> >int> add = sum(10, 30);> > >printf>(>'Sum is: %d'>, add);> >return> 0;> }>

>

conjunto c ++
>

Producción

Sum is: 40>

Como notamos, no hemos utilizado una declaración de función explícita. Simplemente definimos y llamamos a la función.

Tipo de retorno de función

El tipo de retorno de la función indica qué tipo de valor se devuelve después de ejecutar toda la función. Cuando no queremos devolver un valor, podemos usar el tipo de datos vacío.

Ejemplo:

int func(parameter_1,parameter_2);>

La función anterior devolverá un valor entero después de ejecutar declaraciones dentro de la función.

Nota: Sólo se puede devolver un valor desde una función C. Para devolver múltiples valores, tenemos que usar punteros o estructuras.

Argumentos de función

Los argumentos de función (también conocidos como parámetros de función) son los datos que se pasan a una función.

Ejemplo:

int function_name(int var1, int var2);>

Condiciones de tipos de devolución y argumentos.

En el lenguaje de programación C, las funciones se pueden llamar con o sin argumentos y pueden devolver valores. Pueden o no devolver valores a las funciones de llamada.

java integer
  1. Función sin argumentos y sin valor de retorno.
  2. Función sin argumentos y con valor de retorno.
  3. Función con argumento y sin valor de retorno.
  4. Función con argumentos y con valor de retorno.

Para saber más sobre los argumentos de funciones y los valores de retorno, consulte el artículo – Argumentos de funciones y valores de retorno en C.

¿Cómo funciona la función C?

El funcionamiento de la función C se puede dividir en los siguientes pasos, como se menciona a continuación:

    Declarar una función: Declarar una función es un paso en el que declaramos una función. Aquí definimos los tipos de retorno y los parámetros de la función.
  1. Definiendo una función:
  2. Llamar a la función: Llamar a la función es un paso en el que llamamos a la función pasando los argumentos de la función. Ejecutar la función: ejecutar la función es un paso en el que podemos ejecutar todas las declaraciones dentro de la función para obtener el resultado final. Devolver un valor: Devolver un valor es el paso donde se devuelve el valor calculado después de la ejecución de la función. Salir de la función es el paso final donde se destruye toda la memoria asignada a las variables, funciones, etc. antes de otorgar el control total a la función principal.

Tipos de funciones

Hay dos tipos de funciones en C:

    Funciones de biblioteca Funciones definidas por el usuario
Tipos de funciones

Tipos de funciones en C

1. Función de biblioteca

Una función de biblioteca también se conoce como función incorporada . Ya existe un paquete compilador que contiene estas funciones, cada una de las cuales tiene un significado específico y está incluida en el paquete. Las funciones integradas tienen la ventaja de poder usarse directamente sin estar definidas, mientras que las funciones definidas por el usuario deben declararse y definirse antes de usarse.

Por ejemplo:

pow(), sqrt(), strcmp(), strcpy() etc.>

Ventajas de las funciones de la biblioteca C

  • Las funciones de la biblioteca C son fáciles de usar y están optimizadas para un mejor rendimiento.
  • Las funciones de la biblioteca C ahorran mucho tiempo, es decir, tiempo de desarrollo de funciones.
  • Las funciones de la biblioteca C son convenientes porque siempre funcionan.

Ejemplo:

C




// C program to implement> // the above approach> #include> #include> // Driver code> int> main()> {> >double> Number;> >Number = 49;> >// Computing the square root with> >// the help of predefined C> >// library function> >double> squareRoot =>sqrt>(Number);> > >printf>(>'The Square root of %.2lf = %.2lf'>,> >Number, squareRoot);> >return> 0;> }>

>

>

Producción

The Square root of 49.00 = 7.00>

2. Función definida por el usuario

Las funciones que crea el programador se conocen como funciones definidas por el usuario o funciones a medida . Las funciones definidas por el usuario se pueden mejorar y modificar según las necesidades del programador. Siempre que escribimos una función que es específica de un caso y no está definida en ningún archivo de encabezado, debemos declarar y definir nuestras propias funciones de acuerdo con la sintaxis.

Ventajas de las funciones definidas por el usuario

  • Las funciones cambiables se pueden modificar según sea necesario.
  • El Código de estas funciones es reutilizable en otros programas.
  • Estas funciones son fáciles de entender, depurar y mantener.

Ejemplo:

C




// C program to show> // user-defined functions> #include> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >int> a = 30, b = 40;> > >// function call> >int> res = sum(a, b);> >printf>(>'Sum is: %d'>, res);> >return> 0;> }>

>

>

Producción

Sum is: 70>

Pasar parámetros a funciones

Los datos pasados ​​cuando se invoca la función se conocen como parámetros reales. En el siguiente programa, 10 y 30 se conocen como parámetros reales. Los parámetros formales son la variable y el tipo de datos como se menciona en la declaración de la función. En el siguiente programa, a y b se conocen como parámetros formales.

Pasar parámetros a funciones

Pasar parámetros a funciones

Podemos pasar argumentos a la función C de dos maneras:

  1. Pasar por valor
  2. Pasar por referencia

1. Pasar por valor

El paso de parámetros en este método copia valores de parámetros reales en parámetros de funciones formales. Como resultado, cualquier cambio realizado dentro de las funciones no se refleja en los parámetros de la persona que llama.

Ejemplo:

C




// C program to show use> // of call by value> #include> void> swap(>int> var1,>int> var2)> {> >int> temp = var1;> >var1 = var2;> >var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(var1, var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

semillas vs esporas
Producción

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 3, 2>

2. Pasar por referencia

Los parámetros reales de la persona que llama y los parámetros reales de la función se refieren a las mismas ubicaciones, por lo que cualquier cambio realizado dentro de la función se refleja en los parámetros reales de la persona que llama.

Ejemplo:

C




// C program to show use of> // call by Reference> #include> void> swap(>int> *var1,>int> *var2)> {> >int> temp = *var1;> >*var1 = *var2;> >*var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(&var1, &var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

Producción

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 2, 3>

Ventajas de las funciones en C

Funciones en C es una característica muy útil de C con muchas ventajas, como se menciona a continuación:

  1. La función puede reducir la repetición de las mismas declaraciones en el programa.
  2. La función hace que el código sea legible proporcionando modularidad a nuestro programa.
  3. No hay un número fijo de funciones de llamada, se puede llamar tantas veces como desee.
  4. La función reduce el tamaño del programa.
  5. Una vez declarada la función, puedes usarla sin pensar en el funcionamiento interno de la función.

Desventajas de las funciones en C

Las siguientes son las principales desventajas de las funciones en C:

  1. No se pueden devolver varios valores.
  2. Sobrecarga de memoria y tiempo debido a la asignación del marco de pila y la transferencia del control del programa.

Conclusión

En este artículo, analizamos los siguientes puntos sobre la función como se menciona a continuación:

comando grep en linux
  1. La función es el bloque de código que se puede reutilizar tantas veces como queramos dentro de un programa.
  2. Para usar una función necesitamos llamar a una función.
  3. La declaración de función incluye nombre_función, tipo de retorno y parámetros.
  4. La definición de función incluye el cuerpo de la función.
  5. La función es de dos tipos: función definida por el usuario y función de biblioteca.
  6. En función, podemos, según dos tipos, llamar por valor y llamar por referencia según los valores pasados.

Preguntas frecuentes sobre funciones en C

P1. Definir funciones.

Respuesta:

Las funciones son el bloque de código que se ejecuta cada vez que se llaman durante la ejecución de un programa.

P2. ¿Qué es una declaración anticipada?

Respuesta:

A veces definimos la función después de su llamada para proporcionar una mejor legibilidad. En tales casos, declaramos la función antes de su definición y llamada. Esta declaración se denomina declaración anticipada.

P3. ¿Cuál es la diferencia entre declaración y definición de función?

Respuesta:

Los datos como el nombre de la función, el tipo de retorno y el parámetro se incluyen en la declaración de la función, mientras que la definición es el cuerpo de la función. Todos estos datos se comparten con el compilador según sus correspondientes pasos.

P4. ¿Cuál es la diferencia entre argumentos y parámetros de función?

Respuesta:

Los parámetros de función son los valores declarados en una declaración de función. Mientras que los argumentos de la función son los valores que se pasan en la función durante la llamada a la función.

Ejemplo:

 int func(int x,int y); func(10,20);>

Aquí, int x e int y son parámetros, mientras que 10 y 20 son los argumentos pasados ​​a la función.

Para saber más al respecto, consulte este artículo: Diferencia entre argumentos y parámetros en C.

P5. ¿Podemos devolver múltiples valores de una función C?

Respuesta:

No, generalmente no es posible devolver múltiples valores de una función. Pero podemos usar punteros a ubicaciones de memoria estática o de montón para devolver múltiples valores o podemos poner datos en el estructura y luego devolver la estructura.

Para saber más al respecto, consulte este artículo: ¿Cómo devolver múltiples valores de una función en C o C++?

P6. ¿Cuál es el parámetro real y formal?

Respuesta:

Parámetro formal: Las variables declaradas en el prototipo de función se conocen como argumentos o parámetros formales.

Parámetro real: Los valores que se pasan en la función se conocen como argumentos o parámetros reales.