Declaración, Tipo y Retorno
En la lección anterior, se aprendió la anatomía básica de las funciones:
main.c
123456func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }
Declaración
Antes de utilizar una función, debe ser declarada. Llamar a una función antes de su declaración generará un error.
Se puede declarar toda la función al mismo tiempo que su definición (como se ilustró anteriormente) o utilizar un prototipo, que se abordará como un tema adicional 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.
main.c
12345678int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }
Una discrepancia entre el tipo de dato y el tipo de retorno puede hacer que la función (o incluso todo el programa) no funcione correctamente.
main.c
12345678int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }
Al sumar valores no enteros, se espera un resultado preciso. Sin embargo, debido a la inconsistencia de tipos, el resultado es erróneo.
main.c
1234567891011121314151617#include <stdio.h> int func() { double number1 = 6.985; // Not `int` nubmer double number2 = 231.765; // Not `int` number double result = number1 + number2; 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 (debe ser
double); - Uso de un especificador de formato incorrecto (
%d) en la funciónprintf()(debe ser%f).
La versión correcta sería:
main.c
1234567891011121314151617#include <stdio.h> double func() { double number1 = 6.985; // `int` nubmer double number2 = 231.765; // `int` number double result = number1 + number2; return result; // Output of function } int main() { // Print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }
Esto implica que se puede asignar directamente el resultado de la función a variables/arreglos o incluso pasarlo a otras funciones. Un ejemplo de esto es cómo utilizamos el resultado con la función printf en los escenarios anteriores.
El especificador de formato para números de punto flotante es %f.
También es relevante mencionar que una función puede contener múltiples sentencias return, cada una activándose bajo condiciones distintas.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 2.63
Declaración, Tipo y Retorno
Desliza para mostrar el menú
En la lección anterior, se aprendió la anatomía básica de las funciones:
main.c
123456func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }
Declaración
Antes de utilizar una función, debe ser declarada. Llamar a una función antes de su declaración generará un error.
Se puede declarar toda la función al mismo tiempo que su definición (como se ilustró anteriormente) o utilizar un prototipo, que se abordará como un tema adicional 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.
main.c
12345678int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }
Una discrepancia entre el tipo de dato y el tipo de retorno puede hacer que la función (o incluso todo el programa) no funcione correctamente.
main.c
12345678int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }
Al sumar valores no enteros, se espera un resultado preciso. Sin embargo, debido a la inconsistencia de tipos, el resultado es erróneo.
main.c
1234567891011121314151617#include <stdio.h> int func() { double number1 = 6.985; // Not `int` nubmer double number2 = 231.765; // Not `int` number double result = number1 + number2; 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 (debe ser
double); - Uso de un especificador de formato incorrecto (
%d) en la funciónprintf()(debe ser%f).
La versión correcta sería:
main.c
1234567891011121314151617#include <stdio.h> double func() { double number1 = 6.985; // `int` nubmer double number2 = 231.765; // `int` number double result = number1 + number2; return result; // Output of function } int main() { // Print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }
Esto implica que se puede asignar directamente el resultado de la función a variables/arreglos o incluso pasarlo a otras funciones. Un ejemplo de esto es cómo utilizamos el resultado con la función printf en los escenarios anteriores.
El especificador de formato para números de punto flotante es %f.
También es relevante mencionar que una función puede contener múltiples sentencias return, cada una activándose bajo condiciones distintas.
¡Gracias por tus comentarios!