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
C Básico
course content

Contenido del Curso

C Básico

C Básico

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

bookDeclaración, Tipo y Retorno

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

Declaración

Antes de utilizar una función, debe ser declarada. Llamar a una función antes de su declaración resultará en un error.

Puedes declarar toda la función simultáneamente con su definición (como se ilustra arriba) o usar un prototipo, del cual hablaremos como un extra al final de este segmento.

Tipos de Funciones y Valores de Retorno

El tipo de la función informa al compilador sobre el tipo de dato 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.

Una discrepancia entre el tipo de dato y el tipo de retorno podría hacer que la función (o incluso todo el programa) funcione incorrectamente. Aquí hay un ejemplo: vamos a sumar dos números no enteros, pero configuramos la función para que devuelva un tipo entero:

Al sumar valores no enteros, esperarías 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);
  • Uso del 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 cadena.

Esto implica que podemos asignar directamente el resultado de la función a variables/arreglos 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 punto flotante.

También vale la pena mencionar que una función puede contener múltiples declaraciones return, cada una activándose 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