¿Todo lo que necesita saber sobre las funciones en C?



Este artículo le presentará un concepto simple pero muy fundamental e importante que es Funciones en C y lo seguirá con una demostración.

Este artículo le presentará un simple pero muy fundamental e importante concepto que es Funciones en C y continúe con una demostración. En este artículo se cubrirán los siguientes consejos,

Las funciones son bloques de construcción de cualquier lenguaje de programación. En palabras simples, funciona en un conjunto de declaraciones, que toma entradas, realiza una tarea específica y luego devuelve la salida.
La ideología detrás de la función de creación es unir un conjunto de declaraciones relacionadas que realizan una tarea específica. Por lo tanto, no tiene que escribir el mismo código varias veces para diferentes conjuntos de entradas. Solo tiene que llamar a la función para diferentes entradas, realizará la tarea especificada para la entrada dada y devolverá la salida. Puede llamar a la función tantas veces como desee. En este blog, aprenderemos todos y cada uno de los matices sobre las funciones en el lenguaje de programación C.





Comencemos con la pregunta más fundamental.

¿Qué son las funciones en C?

Las funciones son las mismas en C que en cualquier otro lenguaje de programación. Es un conjunto de códigos que se unen para realizar una tarea específica. El conjunto de código que se ejecutará se especifica entre llaves, es decir, '{}'.



Antes de aprender a escribir una función en C, primero comprendamos cuáles son las ventajas.

Ventajas de las funciones en C

Las ventajas de las funciones son comunes a todos los lenguajes de programación.
La idea principal detrás de la función es reducir la redundancia en el código. Suponga que tiene una funcionalidad que debe realizarse varias veces en un programa, por lo que en lugar de escribirla varias veces, puede crear una función para esa tarea y llamarla tantas veces como desee. Otro beneficio oculto es que, si la lógica de su funcionalidad cambia posteriormente, no tiene que seguir adelante y cambiarla en varios lugares. Solo tiene que cambiar el código en un lugar (es decir, en la función) y se reflejará en todo el programa.

La modularidad vuelve a ser un beneficio añadido. Escribir un gran fragmento de código que incluya todos y cada uno de ellos reduce la legibilidad del código y dificulta su administración. Puede dividir el código en secciones para funcionalidades individuales usando funciones, que es más simple de entender y más fácil de administrar.



cómo evitar interbloqueos en java

La función también proporciona abstracción, donde podemos llamar a una función y obtener el resultado sin conocer la implementación interna.

Continuando con los tipos de función C

Tipos de función en C

Hay dos tipos de funciones:
Funciones de biblioteca
Funciones definidas por el usuario

Las funciones de la biblioteca son aquellas funciones que ya están definidas en la biblioteca C, como strcat (), printf (), scanf (), etc. Solo necesita incluir los archivos de encabezado apropiados para usar estas funciones.
Las funciones definidas por el usuario son aquellas funciones definidas por el usuario. Estas funciones están diseñadas para la reutilización del código y para ahorrar tiempo y espacio.

Ahora que conocemos los beneficios de crear una función, comprendamos cómo declarar una función en C.

Declaración y definición de funciones

Declaración de función:

Sintaxis de la declaración de función:

return_type function_name (data_type arg1, data_type arg2) int add (int x, int y) // declaración de la función

En Declaración de función, especificamos el nombre de la función, el número de parámetro de entrada, sus tipos de datos y el tipo de retorno de la función. La declaración de función le dice al compilador sobre la lista de argumentos que la función espera con sus tipos de datos y el tipo de retorno de la función.

En la declaración de función, especificar los nombres del parámetro es opcional, pero especificar sus tipos de datos es obligatorio.

int add (int, int) // declaración de función

La función especificada anteriormente tomará dos parámetros enteros.

Definición de función

 Imagen- Funciones en C- Edureka
int add (int, int) // declaración de función return_type function_name (parámetros) {Cuerpo de la función}

Como se muestra en la imagen de arriba, una definición de función consta de dos partes, es decir, encabezado de función y cuerpo de función

Encabezado de función: El encabezado de la función es el mismo que la declaración de la función sin el punto y coma. El encabezado de la función contiene el nombre de la función, el parámetro y el tipo de retorno.

  • Tipo de devolución: El tipo de retorno es el tipo de datos del valor que devolverá la función. La función puede devolver un valor o no. Si es así, se debe especificar el tipo de datos del valor de resintonización; de lo contrario, el tipo de retorno debe ser nulo.

  • Nombre de la función: Este es el nombre de la función con la que podemos llamar a la función cuando y donde sea necesario.

  • Parámetros: Los parámetros son los valores de entrada que se pasarán a la función. Informa sobre los tipos de datos de los argumentos, su orden y el número de argumentos que se pasarán a la función. Los parámetros son opcionales. También puede tener funciones sin parámetros.

Cuerpo de la función: El cuerpo de la función es el conjunto de declaraciones que realiza una tarea específica. Define lo que hace la función.

Ejemplo:

int add (int x, int y) {int sum = x + y return (sum)}

Se recomienda declarar una función antes de definirla y usarla. En C, podemos declarar y definir la función en el mismo lugar.

Ejemplo:

#include int add (int, int) // declaración de la función // definición de la función int add (int x, int y) // encabezado de la función {// cuerpo de la función int sum = x + y return (sum)} // Función principal int main () {int sum = add (23, 31) printf ('% d', sum) return 0}

Como podemos ver en el ejemplo anterior, estamos llamando a la función usando la instrucción int sum = add (23, 31). El valor devuelto por la función se almacena en la variable suma.

Antes de seguir adelante, hay un concepto más importante que entender sobre el paramento. Hay dos tipos de parámetros:

Parámetro real : Los parámetros que se pasan a las funciones mientras se las llama se conocen como parámetros reales. Por ejemplo, 23 y 31 en el ejemplo anterior son los parámetros reales.

Parámetro formal : Los parámetros que reciben las funciones se conocen como parámetros formales. Por ejemplo, x & y en el ejemplo anterior son los parámetros formales.

Avancemos rápidamente y comprendamos las diferentes formas de llamar a una función en C.

Llamar a una función

Hay dos formas en las que podemos llamar a una función:

  • Llamar por valor
  • Llamar por referencia

Llamar por valor

En el método de llamada por valor, el valor del parámetro real se pasa como un argumento a la función. El valor del parámetro real no se puede cambiar mediante los parámetros formales.

En el método call be value, se asignan diferentes direcciones de memoria a parámetros formales y reales. Solo el valor del parámetro real se copia al parámetro formal.

Ejemplo:

#include void Call_By_Value (int num1) {num1 = 42 printf ('nInside Function, Number is% d', num1)} int main () {int num num = 24 printf ('nBefore Function, Number is% d', num ) Call_By_Value (num) printf ('nDespués de la función, el número es% dn', num) return 0}

Salida

En el ejemplo anterior, antes de llamar por función de valor, el valor de num es 24. Luego, una vez que llamamos a la función y pasamos el valor, y lo cambiamos dentro de la función, se convierte en 42. Cuando regresemos y nuevamente imprimimos el valor de num en la función principal, se convierte en 24.

Llamar por referencia

En la llamada por referencia, la dirección de memoria del parámetro real se pasa a la función como argumento. Aquí, el valor del parámetro real se puede cambiar mediante el parámetro formal.

factorial usando recursividad en c

Se utiliza la misma dirección de memoria tanto para el parámetro real como para el formal. Por lo tanto, si se modifica el valor del parámetro formal, también se refleja en el parámetro real.

En C usamos punteros para implementar la llamada por referencia. Como puede ver en el siguiente ejemplo, la función Call_By_Reference espera un puntero a un número entero.

Ahora, esta variable num1 almacenará la dirección de memoria del parámetro actual. Entonces, para imprimir el valor que está almacenado en la dirección de memoria apuntada por num1, necesitamos usar el operador de desreferencia, es decir, *. Entonces, el valor de * num1 es 42.

El operador de dirección & se utiliza para obtener la dirección de una variable de cualquier tipo de datos. Entonces, en la declaración de llamada de función 'Call_By_Reference (& num)', se pasa la dirección de num para que num se pueda modificar usando su dirección.

Ejemplo

#include // definición de función void Call_By_Reference (int * num1) {* num1 = 42 printf ('nInside Function, Number is% d', * num1)} // Main Function int main () {int num num = 24 printf ( 'Función nBefore, el número es% d', num) Call_By_Reference (& num) printf ('Función nAfter, el número es% dn', num) return 0}

Salida

En este ejemplo, el valor de num es 24 inicialmente, dentro de la función principal. Una vez que se pasa a la función Call_By_Reference y el valor es modificado por el parámetro formal, también se cambió para el parámetro real. Por eso, cuando imprimimos el valor de num después de la función, imprimimos 42.

Continuando con los tipos de funciones definidas por el usuario en C

Tipos de definidos por el usuario Función C ª

Hay varios tipos de funciones definidas por el usuario basadas en el tipo de retorno y los argumentos pasados.

Continuar sin pasar argumentos y sin valor de retorno

1.No se pasan argumentos y no se devuelve ningún valor

Sintaxis:

declaración de función:

función void () llamada a función: función () definición de función: función void () {declaraciones}

Ejemplo

c ++ que es un espacio de nombres
#include void add () void add () {int x = 20 int y = 30 int sum = x + y printf ('sum% d', sum)} int main () {add () return 0}

Continuando sin argumentos pasados ​​pero con un valor de retorno

2 No se pasan argumentos pero se devuelve un valor

Sintaxis:

declaración de función:

int function () llamada a función: function () definición de función: int function () {declaraciones devuelven a}

Ejemplo:

#include int add () int add () {int x = 20 int y = 30 int sum = x + y return (sum)} int main () {int sum sum = add () printf ('sum% d', suma) devuelve 0}

Continuar con los argumentos pasados ​​pero sin valor de retorno

3 Argumento pasado pero sin valor de retorno

Sintaxis:

declaración de función:

función nula (int) llamada a función: función (a) definición de función: función nula (int a) {declaraciones}

Ejemplo:

#include void add (int, int) void add (int x, int y) {int sum = x + y return (sum)} int main () {add (23, 31) return 0}

Continuando con el argumento pasado y un valor de retorno

4 Argumento pasado y valor de retorno

Sintaxis:

declaración de función:

int función (int) llamada a función: función (a) definición de función: int función (int a) {declaraciones devuelven a}

Ejemplo

#include int add (int, int) int add (int x, int y) {int sum = x + y return (sum)} int main () {int sum = add (23, 31) printf ('% d' , suma) devuelve 0}

Ahora veamos rápidamente las funciones de la biblioteca C que son importantes para escribir un programa.

Funciones de la biblioteca C

Las funciones de biblioteca son funciones en C que están predefinidas y están presentes de forma predeterminada. Solo tiene que incluir el archivo de encabezado específico en el programa y puede usar las funciones definidas en ese archivo de encabezado. Cada archivo de encabezado proporciona un tipo específico de funcionalidad. La extensión del archivo de encabezado es .h.

Por ejemplo, para usar las funciones printf / scanf necesitamos incluir stdio.h en nuestro programa, que proporciona funcionalidad con respecto a la entrada / salida estándar.

A continuación se muestra la lista de archivos de encabezado.

1stdio.hArchivo de encabezado de entrada / salida estándar
2minting.hArchivo de encabezado de entrada / salida de la consola
3string.hFunciones de biblioteca relacionadas con cadenas como gets (), put (), etc.
4stdlib.hFunciones de biblioteca general como malloc (), calloc (), exit (), etc.
5matemáticas.hFunciones relacionadas con operaciones matemáticas como sqrt (), pow (), etc.
6tiempo.hFunciones relacionadas con el tiempo
7ctype.hFunciones de manejo de personajes
8stdarg.hFunciones de argumento variable
9señal.hFunciones de manejo de señales
10setjmp.hFunciones de salto
11locale.hFunciones locales
12errno.hFunciones de manejo de errores
13afirmar.hFunciones de diagnóstico

Ahora, después de pasar por las funciones C anteriores, habrá entendido todos y cada uno de los matices de la función y cómo implementarlo en lenguaje C. Espero que este blog sea informativo y de valor agregado para ti.

Por lo tanto, hemos llegado al final de este artículo sobre 'Funciones en C'. Si desea obtener más información, consulte el , una empresa de aprendizaje en línea de confianza. El curso de certificación y capacitación Java J2EE y SOA de Edureka está diseñado para capacitarlo en conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este blog y nos pondremos en contacto con usted lo antes posible.