Funciones
La mejor manera de desarrollar y de mantener un programa grande es construirlo de pedazos más pequeños que sean más fáciles de manejar (una técnica referida a veces como se divide y conquista). Las funciones permiten el programador modularize el programa.
Las funciones permiten que los programas complicados sean empaquetados para arriba en bloques pequeños, que es más fácil de escribir, leen, y mantienen. Hemos encontrado ya el printf principal y hecho uso de la función de la biblioteca estándar. Podemos por supuesto hacer nuestras propias funciones y archivos de jefe. Una función tiene la disposición siguiente:
return-type function-name ( argument list if necessary )
{
local-declarations;
statements ;
return return-value;
}
Si se omite el volver-tipo, C omite interno. El volver-valor debe estar del tipo declarado. Todas las variables declaradas dentro de funciones se llaman las variables locales, en que están sabidas solamente en la función a la cual se han definido.
Algunas funciones tienen una lista del parámetro que proporcione un método de la comunicación entre la función, y el módulo que llamó la función. Los parámetros son también variables locales, en que no son exterior disponible de la función. Los programas cubrieron todos tienen hasta ahora cañería, que es una función.
Una función puede realizar simplemente una tarea sin volver ningún valor, en este caso tiene la disposición siguiente:
void function-name ( argument list if necessary )
{
local-declarations ;
statements;
}
Las discusiones son pasadas siempre por el valor en llamadas de función de C. Esto significa que las copias locales de los valores de las discusiones están pasadas a las rutinas. Cualquier cambio realizado a las discusiones internamente en la función se realiza solamente a las copias locales de las discusiones.
Para cambiar o definir una discusión en la lista de la discusión, esta discusión se debe pasar como dirección. Utilizas variables regulares si la función no cambia los valores de esas discusiones. DEBES utilizar indicadores si la función cambia los valores de esas discusiones.
Aprendamos con ejemplos:
#include <stdio.h>
void exchange ( int *a, int *b )
{
int temp;
temp = *a;
*a = *b;
*b = temp;
printf(" From function exchange: ");
printf("a = %d, b = %d\n", *a, *b);
}
void main()
{
int a, b;
a = 5;
b = 7;
printf("From main: a = %d, b = %d\n", a, b);
exchange(&a, &b);
printf("Back in main: ");
printf("a = %d, b = %d\n", a, b);
}
Y la salida de este programa será exhibida como sigue:
From main: a = 5, b = 7
From function exchange: a = 7, b = 5
Back in main: a = 7, b = 5 |
|