Professional Documents
Culture Documents
Funciones
Waldo E. Valenzuela P.
waldovalenzuela@udec.cl
Las funciones en C desempean el papel de las subrutinas o procedimientos en otros lenguajes, esto es, permiten agrupar una serie de operaciones de tal manera que se puedan utilizar ms tarde sin tener que preocuparnos por cmo estn implementadas, simplemente sabiendo lo que harn.
Formato de la definicin
tipo nombre(parmetros formales) cuerpo
Ejemplo
Tipo del argumento Nombre del argumento Variables locales Cdigo a ejecutar Generalmente es un bloque delimitado por { y }
Cuerpo
Otra Implementacin
Funcin sumaCubos()
Ejemplo de uso
int i = 3, j = 2; int k = sumaCubos(i, j); x recibe el valor 3 n recibe el valor 2 lazo calcula 2x33 = 54 funcin retorna 54 Qu valor tienen ahora:
k i suma 54 3 no existe!
Tipo: retorna int Nombre: sumaCubos Parmetros formales: 2 enteros, x y n Variables locales:
Entero i (contador) Entero suma (acumula sumas) Tienen alcance slo dentro de la funcin Acumula la suma de n veces x al cubo
10
Comando return
Compilador detecta uso incorrecto de void Declaracin debe ir antes del uso
Comando return puede ser utilizado en cualquier parte de la funcin Expresin suele ir entre parntesis
11
12
Declaracin de funciones
Prototipos
Recomendable incluirlos!
Prototipo termina en ;
13
14
Ejemplo
/* Declaracion de funcion */ float suma(float, float); /* Uso de la funcion */ float c = suma(x, 4*h); /* Definicin de funcion */ float suma(float a, float b) { return a + b; }
2011 Waldo Valenzuela 15
Archivos de encabezado
16
Archivos de encabezado
Archivos de encabezado
Cambiar el prototipo implica recompilar todos los archivos que usan las funciones
#endif
Al incluir archivo de encabezado en archivo que contiene definicin, compilador puede verificar uso correcto de funcin
17
18
printf(), system(), scanf(), sqrt(), etc. Prototipos del sistema estn en directorio include estndar Cdigo de funciones del sistema est en una biblioteca de funciones
Directorio estndar
En CodeBlocks\MinGW\Include
Archivo .a
Directorio actual
19
20
Ejemplo
printf(%lf %d\n, pi(), pi()); float pi() { return 3.14; }
Nombres de funciones
void a() { int b; int *f(int *a, int b); } void b() { int f(int a, int *b); }
Impresin es 0.00000 4199171 Funcin pi() no ha sido declarada Compilador detecta inconsistencia y advierte del hecho
21
Existe Error?
No puede usar el nombre a o b para valores de argumentos, ya que estn usados como nombre de funcin.
22
Argumentos
Funcin recibe una copia de los valores de los argumentos Funcin puede modificar copias sin alterar variables originales Funcin recibe direccin de los argumentos Modificaciones s afectan variables originales
23
Funcin main()
No es posible anidar funciones Todas las funciones tienen alcance global Es la primera funcin en ejecutarse Slo puede haber una por programa
25
26
Argumentos a main()
Estndar define
int main(void), o int main(int argc, char *argv[])
int argc: nmero de argumentos del programa char *argv[]: puntero a un vector de cadenas de caracteres que contienen los argumentos Se estudiarn en detalle ms adelante
Incluir <stdlib.h>
27
28