Está en la página 1de 4

Funciones en el Lenguaje C

Una funcin es una rutina o conjunto de sentencias que realiza una determinada labor. En C todas las funciones devuelven un valor, que por defecto es un entero. Las funciones admiten argumentos, que son datos que le pasan a la funcin las sentencias que la llaman. 1.- Definicin de una funcin. La sintaxis habitual en la definicin de una funcin es tipo identificador(lista_de_argumentos) { /* bloque de cdigo */ } Donde: ! tipo es el tipo de datos devuelto por la funcin

! identificador es el nombre de la funcin. "ebe ser un identificador valido. ! lista_de_argumentos es una lista de variables, separadas por comas, que conforman los datos que le pasamos a la funcin. El tipo # la lista de argumentos son opcionales. $i omitimos el tipo, la funcin por defecto devolver un entero. %uchas veces el valor devuelto por la funcin es ignorado en el programa. La lista de argumentos es tambi&n opcional. Un ejemplo es la funcin main'(, que en principio no tiene argumentos. )odemos escribir como ejemplo hola() { printf(hola\n) } que simplemente es una funcin que cuando es llamada imprime en pantalla un mensaje de saludo. Cuando el programa al ejecutarse alcanza la llave de cierre *+, de la funcin, esta finaliza # devuelve el control al punto del programa que la llam.

2.- Retorno de valores Cuando la funcin finaliza hemos dicho que se devuelve un valor. Este valor en principio no est- definido, es decir, puede devolver cualquier cosa. )ara obligar a la funcin a retornar un determinado valor se utiliza la sentencia return, seguida del valor a retornar. Como todas las sentencias en C se debe acabar con un *.,. )or ejemplo lista() { return ! } devuelve el entero / cada vez que es llamada. En C podemos devolver cualquier tipo de datos de los llamados escalares. Los tipos de datos escalares son los punteros, tipos num&ricos # el tipo car-cter. En C no se pueden devolver matrices ni estructuras. .- !aso de par"metros a una funcin Utilizando la lista de argumentos podemos pasar par-metros a una funcin. En la lista de par-metros se suele colocar un conjunto de identificadores, separados por comas, que representar-n cada uno de ellos a uno de los par-metros de la funcin 'par-metros formales(. 0bservar que el orden de los par-metros es importante. )ara llamar a la funcin habr- que colocar los par-metros en el orden en que la funcin los espera ')ar-metros reales(. Cada par-metro puede tener un tipo diferente. 1si imprime(int numero" char letra) { printf(#d" #c\n" numero" letra) }

es una funcin que admite dos variables, una entera # otra de tipo car-cter. Un ejemplo de llamada a dicha funcin der2a $mprime(%" &a') #.- !aso de par"metros por valor $ por referencia En los lenguajes de programacin estructurada ha# dos formas de pasar variables a una funcin por referencia o por valor. Cuando la variable se pasa por referencia, la funcin puede acceder a la variable original. Este enfoque es habitual en lenguajes como el )ascal. En C sin embargo todos los par-metros se pasan por valor. La funcin recibe una copia de los par-metros # variables, # no puede acceder a las variables originales. Cualquier modificacin que efectuemos sobre un par-metro no se reflejar- en la variable original. Esto hace que no podamos alterar el valor de la variable por equivocacin. $in embargo, en determinadas ocasiones necesitaremos alterar el valor de la variable que le pasamos a una funcin. )ara ello en el C se emplea el mecanismo de los punteros. Un puntero es una variable que guarda la direccin de memoria donde esta guardada otra variable. )or lo tanto para crear par-metros de entrada3salida 'paso de par-metros por referencia( es necesario declarar la funcin utilizando punteros como par-metros. Ejemplo 4amos a declarar un procedimiento 'funcin de tipo void( que intercambia dos valores. (oid intercambiar(int *a"int *b) El asterisco nos permite declarar un puntero. $i a es un puntero, ha# que tener en cuenta que su valor es una direccin de memoria. )or lo tanto para ontener el contenido de la variable a la que apunta ha# que utilizar 5a. La llamada a esta funcin sera como sigue $nt a $nt b a)* b)+ inctercambiar(,a",b) -

$i recordamos la funcin scanf 'que tambi&n recibe una direccin de memoria( tenemos que utilizar el operador 6, que indica direccin de memoria de la variable indicada. %.- Declaracin $ compro&acin de tipos 1l igual que para las variables, cuando una funcin se va a usar en un programa antes del lugar donde se define, o cuando una funcin se define en otro fichero 'funciones externas(, la funcin se debe declarar. La declaracin de una funcin consiste en especificar el tipo de datos que va a retornar la funcin. Esto es obligatorio cuando vamos a usar una funcin que no devuelve un entero. 1dem-s en la declaracin se puede especificar el n7mero de argumentos # su tipo. Una declaracin t2pica de funcin es tipo identificador( lista_de_argumentos_con_tipo ) Esto avisa al compilador de que la funcin #a existe, o que la vamos a definir despu&s. La lista de argumentos con tipo difiere de la lista de argumentos antes presentada en que el tipo de cada argumento se coloca dentro de la lista, antes de su correspondiente identificador, como hac2amos en la definicin de variables. )or ejemplo char print(int numero" int letra) declara una funcin que devuelve un car-cter # tiene dos par-metros, un entero # un car-cter. La lista de argumentos permite al compilador hacer comprobacin de tipos, #a que el tipo # n7mero de argumentos debe coincidir en la declaracin, definicin # llamada a una funcin.

También podría gustarte