Funciones en C

Source code c uno

Hasta el momento había hecho pequeñas aplicaciones y no era necesario crear funciones para nada, pero imaginaros que en una aplicación necesitamos repetir más de una vez una secuencia de código para realizar lo que nos venga en gana, por ejemplo saber de un array de números cual es el mayor por poner un ejemplo. Sería un poco sucio, repetir esa porción de código en todas las partes donde quieras averiguar cuando un numero es mayor, para eso se utilizan funciones, que vamos a ejecutar desde el principal sin necesidad de reescribir el código.

Así para realizar un resumen rápido, tenemos que saber que una función no solo puede recibir parámetros sino que también puede responder con valores, lo que he dicho aquí sería algo así como:

int suma (int a, int b);

En la definición de la función anterior vemos que la función devuelve un valor entero, y que recibe dos valores enteros, esta función evidentemente como su nombre indica vamos a utilizarla para que sume dos valores (a y b) y devuelva ese valor para poder tratarlo como nosotros necesitemos. Vamos a realizar una aplicación ahora que mediante la función suma que hemos especificado anteriormente, nos sume una serie de números que introducimos por teclado. Vamos a introducir 4 números (a, b, c y d) y vamos a sumar a+b y c+d, esos valores los almacenaremos en resul1 y resul2, y después pasaremos esos dos resultados otra vez a la función de sumar para que devuelva por pantalla el resultado final.

1 #include <stdio.h>
2
3 // Definimos una función que se llama suma y que va a recibir
4 // dos valores enteros y devolver un entero
5 int suma(int num1, int num2);
6
7 void main() {
8   int a,b,c,d, r1,r2;
9
10   // Introducimos primero a y b, después ejecutamos función 
11   // y almacenamos el valor en r1
12   printf("Introduce a: ");
13   scanf("%d", &a);
14   printf("Introduce b: ");
15   scanf("%d", &b);
16   r1=suma(a,b);
17 
18   // Introducimos primero c y d, después ejecutamos función
19   // y almacenamos el valor en r2
20   printf("Introduce c: ");
21   scanf("%d", &c);
22   printf("Introduce d: ");
23   scanf("%d", &d);
24   r2=suma(c,d);
25
26   // Ahora visualizamos directamente el resultado final de sumar r1 y r2
27   printf("El resultado final es: %d\n", suma(r1,r2));
28 }
29
30 int suma (int num1, int num2) {
31   return num1+num2;
32 }

Descargar: CÓDIGO FUENTE

Evidentemente esta función no tiene mucho sentido para ahorrarse líneas, ya que se podría realizar directamente desde el main, pero imaginaros en otras funciones donde tendremos que realizar más operaciones, el código que se ahorra en el principal sería absolutamente mayor, además ganamos en claridad y también puede ser más comprensivo ver una función llamada suma para la lectura y entendimiento del código. En ejemplos posteriores, empezaremos a utilizar funciones y el que no haya entendido la ventaja que tiene esto, lo entenderá rápido.

Más para explorar

Antiguas noticias
Código Python

Empezando con python

Hace ya un tiempo que llevo pensando en ponerme con Python, su escalada en Lenguajes más queridos (y más usados) en lo referente a mi