AMPLIACIÓN
Una función es una parte del programa que realiza una determinada tarea o devuelve un valor. El propio bloque principal del programa, es para C una función, y también son funciones printf(), scanf(), etc.
Se trata ahora de definir nuestras propias funciones, por ejemplo para calcular cubos de números, logaritmos en base n, centrar un texto en pantalla, etc.
Para utilizar una función en un programa, en el inicio, tras las declaraciones de los ficheros de cabecera, la definimos, en la forma:
tipo_resultado_devuelto nombre_función (tipo_argumentos_que_recibe argumentos_que_recibe);
Cada argumento debe ir precedido de su tipo.
Por ejemplo: int funcion (int numero1, int numero2); con lo que indicamos que el programa va a usar una función de nombre funcion, que devuelve un resultado de tipo entero, y que recibe del bloque principal dos números enteros como argumentos.
Posteriormente, en cualquier parte del programa, se escribe la función, repitiendo como encabezamiento de la misma el que se puso al declararla, y desarrollándola a continuación entre llaves. El resultado devuelto por la función se indica mediante return resultado; Cuando una función no devuelve ningún valor, se puede omitir return;
Dentro de la función se pueden declarar las variables que esta necesite, que sólo tendrán validez durante la ejecución de la misma.
Para invocar desde el bloque principal a la función, se escribe el nombre de la misma, y entre paréntesis se pasan los argumentos, si es que los hay. En caso de no existir, simplemente se ponen los paréntesis. Cuando el programa llega a la llamada a la función, salta a la misma, pasando los argumentos, , si los hay, a las variables correspondientes de la función, la ejecuta, y devuelve el valor, si lo hay, al bloque principal, continuándose con la ejecución del programa.
Las variables que se pasaron a la función, aunque en ésta se modificasen, permanecen inalteradas (paso de parámetros por valor).
Esquema del uso de funciones.
#include <stdio.h>
int fun1();
int fun2();
int fun1()
{
printf("Esta es la función 1\n");
}int fun2()
{
printf("Esta es la función 2\n");
}void main()
{
printf("Bloque principal\n");
fun1(); /*Aquí se invoca a la función 1, que no tiene argumentos*/
printf("Bloque principal\n");
fun2();/*Aquí se invoca a la función 1, que no tiene argumentos*/printf("Bloque principal\n");
}http://www.fortunecity.es/imaginapoder/artes/579