El código de un programa escrito en C se divide en
funciones. Aunque similares a los “métodos” de Java, las
funciones no están asignadas ni a una clase ni a un objeto. Una función en C
se distingue sólo por su nombre. Dos funciones con igual
nombre y con diferente número y tipo de parámetros se considera una definición
múltiple, y por tanto un error.
Las funciones suelen encapsular una operación más o menos
compleja de la que se deriva un resultado. Para ejecutar esta operación, las
funciones pueden precisar la invocación de otras funciones (o incluso de ellas
mismas como es el caso de las funciones recursivas).
Las funciones en un programa son entidades que dado un
conjunto de datos (los parámetros), se les encarga realizar una tarea muy
concreta y se espera hasta obtener el resultado. Lo idóneo es dividir tareas
complejas en porciones más simples que se implementan como funciones. La
división y agrupación de tareas en funciones es uno de los aspectos más
importantes en el diseño de un programa.
1. Definición de funciones
Las funciones en C tienen el siguiente formato:
2. Paso de parámetros a una función
Los parámetros son variables locales a los
que se les asigna un valor antes de comenzar la ejecución del cuerpo de una
función. Su ámbito de validez, por tanto, es el propio cuerpo de la
función. El mecanismo de paso de parámetros a las funciones es fundamental
para comprender el comportamiento de los programas en C.
Considera el siguiente programa:
#include <stdio.h>
int suma(int a, int b);
int main(void)
{
//Declaración de variables del programa principal
int n1, n2, resu;
//Leemos dos números
printf ("Dame dos numeros\n");
scanf("%d%d",&n1, &n2);
//Calculamos su suma llamando a una función:
resu=suma(n1,n2);
printf("La suma de %d y %d es %d", n1, n2, resu);
return (0);
}
int suma (int a, int b)
{
int r;
r=a+b;
return r;
}