logo

Función definida por el usuario en C

A función definida por el usuario Es un tipo de función en lenguaje C que es definida por el propio usuario para realizar alguna tarea específica. Proporciona reutilización de código y modularidad a nuestro programa. Las funciones definidas por el usuario se diferencian de las funciones integradas en que su funcionamiento lo especifica el usuario y no se requiere ningún archivo de encabezado para su uso.

En este artículo aprenderemos sobre función definida por el usuario, prototipo de función, definición de función, llamada de función y diferentes formas en que podemos pasar parámetros a una función.

¿Cómo utilizar funciones definidas por el usuario en C?

Para utilizar una función definida por el usuario, primero debemos comprender las diferentes partes de su sintaxis. La función definida por el usuario en C se puede dividir en tres partes:



  1. Prototipo de función
  2. Definición de función
  3. Llamada de función

Prototipo de función C

Un prototipo de función también se conoce como declaración de función y especifica la nombre de la función, parámetros de la función, y tipo de retorno . El prototipo de función no contiene el cuerpo de la función. Básicamente se utiliza para informar al compilador sobre la existencia de la función definida por el usuario que se puede utilizar en la parte posterior del programa.

Sintaxis

return_type function_name  (type1 arg1 , type2 arg2 , ... typeN argN );>

También podemos omitir el nombre de los argumentos en el prototipo de función. Entonces,

return_type function_name  (type1 , type2 , ... typeN);>
Prototipo de función

Definición de función C

Una vez que se ha llamado a la función, la definición de la función contiene las declaraciones reales que se ejecutarán. Todas las declaraciones de la definición de función están encerradas dentro { } tirantes.

Sintaxis

return_type function_name (type1 arg1 , type2 arg2 .... typeN argN ) { // actual statements to be executed  // return value if any }>

Nota: Si la llamada a la función está presente después de la definición de la función, podemos omitir la parte del prototipo de la función y definir la función directamente.

Llamada de función C

Para transferir el control a una función definida por el usuario, debemos llamarla. Las funciones se llaman usando sus nombres seguidos de corchetes. Sus argumentos se pasan entre corchetes.

Sintaxis

function_name(arg1, arg2, ... argN);>

Ejemplo de función definida por el usuario

El siguiente programa en C ilustra cómo utilizar funciones definidas por el usuario en nuestro programa.

C




// C Program to illustrate the use of user-defined function> #include> // Function prototype> int> sum(>int>,>int>);> // Function definition> int> sum(>int> x,>int> y)> {> >int> sum;> >sum = x + y;> >return> x + y;> }> // Driver code> int> main()> {> >int> x = 10, y = 11;> >// Function call> >int> result = sum(x, y);> >printf>(>'Sum of %d and %d = %d '>, x, y, result);> >return> 0;> }>

>

>

Producción

pitón de cadena f
Sum of 10 and 11 = 21>

Componentes de la definición de función

Hay tres componentes de la definición de función:

  1. Parámetros de función
  2. Cuerpo de función
  3. Valor de retorno

1. Parámetros de función

Los parámetros de función (también conocidos como argumentos) son los valores que la persona que llama pasa a la función llamada. Podemos pasar ninguno o cualquier número de parámetros de función a la función.

Tenemos que definir el nombre de la función y su tipo en la definición de la función y solo podemos pasar el mismo número y tipo de parámetros en la llamada a la función.

Ejemplo

int foo ( int a, int b) ;>

Aquí, a y b son parámetros de función.

Nota: El lenguaje C proporciona un método mediante el cual podemos pasar un número variable de argumentos a la función. Estas funciones se denominan funciones variadas.

2. Cuerpo funcional

El cuerpo de la función es el conjunto de declaraciones encerradas entre llaves { }. Son las declaraciones que se ejecutan cuando se llama a la función.

Ejemplo

int foo (int a, int b) { int sum = a + b;  return sum; }>

Aquí, las declaraciones entre { y } es el cuerpo funcional.

3. Valor de retorno

El valor de retorno es el valor devuelto por la función a su llamador. Una función solo puede devolver un valor único y es opcional. Si no se va a devolver ningún valor, el tipo de devolución se define como nulo.

El devolver palabra clave se utiliza para devolver el valor de una función.

Sintaxis

 return ( expression );>

Ejemplo

 int  foo (int a, int b) { return a + b; }>

Nota: Podemos usar punteros o estructuras para devolver múltiples valores de una función en C.

Pasar parámetros a funciones definidas por el usuario

Podemos pasar parámetros a una función en C usando dos métodos:

  1. Llamar por valor
  2. Llamar por referencia

1. Llamar por valor

En la llamada por valor, se pasa una copia del valor a la función y los cambios que se realizan en la función no se reflejan en los valores. Los argumentos reales y formales se crean en diferentes lugares de la memoria.

Ejemplo

C

descargar xvideoservicethief ubuntu 14.04




// C program to show use of> // call by value> #include> void> swap(>int> a,>int> b)> {> >int> temp = a;> >a = b;> >b = temp;> }> // Driver code> int> main()> {> >int> x = 10, y = 20;> >printf>(>'Values of x and y before swap are: %d, %d '>, x,> >y);> >swap(x, y);> >printf>(>'Values of x and y after swap are: %d, %d'>, x,> >y);> >return> 0;> }>

javamvc

>

>

Producción

Values of x and y before swap are: 10, 20 Values of x and y after swap are: 10, 20>

Nota: Los valores no se cambian en la llamada por valor ya que no se pasan por referencia.

2. Llamada por referencia

En una llamada por Referencia, la dirección del argumento se pasa a la función y los cambios que se realizan en la función se reflejan en los valores. Usamos el punteros del tipo requerido para recibir la dirección en la función.

Ejemplo

C




// C program to implement> // Call by Reference> #include> void> swap(>int>* a,>int>* b)> {> >int> temp = *a;> >*a = *b;> >*b = temp;> }> // Driver code> int> main()> {> >int> x = 10, y = 20;> >printf>(>'Values of x and y before swap are: %d, %d '>, x,> >y);> >swap(&x, &y);> >printf>(>'Values of x and y after swap are: %d, %d'>, x,> >y);> >return> 0;> }>

>

>

Producción

Values of x and y before swap are: 10, 20 Values of x and y after swap are: 20, 10>

Para obtener más detalles, consulte este artículo: Diferencia entre llamada por valor y llamada por referencia

Ventajas de las funciones definidas por el usuario

Las ventajas de utilizar funciones en el programa son las siguientes:

  • Se puede evitar la duplicación de código en los programas mediante el uso de funciones. El código se puede escribir más rápidamente y, como resultado, ser más legible.
  • El código se puede dividir y conquistar mediante funciones. Este proceso se conoce como Divide y Conquistarás. Es difícil escribir grandes cantidades de código dentro de la función principal, así como realizar pruebas y depuración. Nuestra única tarea se puede dividir en varias subtareas más pequeñas mediante el uso de funciones, lo que reduce la complejidad general.
  • Por ejemplo, cuando se usa pow, sqrt, etc. en C sin saber cómo se implementa, se pueden ocultar los detalles de implementación con funciones.
  • Con pocas o ninguna modificación, las funciones desarrolladas en un programa se pueden utilizar en otro, lo que reduce el tiempo de desarrollo.