Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Declaración, Tipo y Retorno | Funciones
Fundamentos de C
course content

Contenido del Curso

Fundamentos de C

Fundamentos de C

1. Introducción
2. Datos
3. Operadores
4. Declaraciones de Control
5. Funciones
6. Indicadores

bookDeclaración, Tipo y Retorno

En la lección anterior aprendiste la anatomía básica de las funciones:

Declaración

Antes de utilizar una función, hay que declararla. Llamar a una función antes de su declaración producirá un error.

Puede declarar la función completa simultáneamente con su definición (como se ilustra arriba) o utilizar un prototipo, que tocaremos como extra al final de este segmento.

Tipos de Función y Valores de Retorno

El tipo de la función informa al compilador sobre el tipo de datos del resultado de la función. Por ejemplo, si nuestra función calcula la suma de dos enteros, entonces anticipamos un entero como resultado:

Nota

Si no se especifica un tipo de función, el compilador por defecto lo trata como un int.

Un desajuste entre el tipo de datos y el tipo de retorno puede hacer que la función (o incluso todo el programa) no funcione correctamente. He aquí un ejemplo: sumemos dos números no enteros, pero configuremos la función para que devuelva un tipo entero:

Al sumar valores no enteros, se esperaría un resultado preciso. Pero debido a la inconsistencia de tipos, el resultado es erróneo.

c

Main

copy
123456789101112131415161718
#include <stdio.h> int func() { double number1 = 6.985; // not int nubmer double number2 = 231.765; // not int number double result = number1 + number2; // not int number too return result; // output of function } int main() { // Call and immediately printing the result of our function printf("Expected Result is 238.75, but result is %d\n", func()); return 0; }

Dos factores principales contribuyen a este error:

  • Un tipo de retorno incorrecto (debería ser double);
  • El uso de un especificador de formato incorrecto (%d) en la función printf() (debería ser %f).

La versión correcta sería:

c

Main

copy
123456789101112131415161718
#include <stdio.h> double func() { double number1 = 6.985; // int nubmer double number2 = 231.765; // int number double result = number1 + number2; // int number too return result; // output of function } int main() { // We immediately print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }

Nota

El resultado de cualquier función será típicamente un valor numérico o de string.

Esto implica que podemos asignar directamente el resultado de la función a variables/arrays o incluso pasarlo a otras funciones. Un ejemplo de esto es cómo usamos el resultado con la función printf en los escenarios anteriores.

Nota

%f es el especificador de formato para números de coma flotante.

También vale la pena mencionar que una función puede albergar múltiples declaraciones return, con cada activación bajo condiciones distintas.

Has construido la función `count`, ¿cómo la invocarías dentro de la función `main`?

Has construido la función count, ¿cómo la invocarías dentro de la función main?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 2
some-alt