Posteado por: wozgeass | octubre 16, 2009

Programando en C para linux (quinta parte).


FUNCIONES.

Una funcion es un conjunto de declaraciones, definiciones, expresiones y sentencias que realizan una tarea especifica.

EL formato general de una funcion en C es:

<tipo_de_retorno>   <nobre_de_la_funcion> (parametros){

variables…

sentencias…

}

El especificador_de_tipo indica el tipo de valor que la funcion devolvera mediante el uso de return. El valor puede ser de cualquier tipo valido. Si no se especifica el valor, entonces la computadora asume por defecto que la funcio devolvera un resultado entero. No se tiene siempre que incluir parametros en una funcion, la lista de parametros puede estar vacia.

Las funciones termina y regresan automaticamente al procedimiento que las llamo cuando se encuentra la ultima llave }, o bien, se puede forzar el regreso antes usando la sentencia return. Ademas del uso señalado la funcion return se usa para devolver un valor.

Se examina a continuacion un ejemplo que encuentra el promedio de dos enteros:

float promedio(int numero1, int numero2){

float prom;

prom = (numero1+numero2) / 2.0;

return(prom);

}

main(){

int a = 7, b=10;

float resultado;

resultado = promedio(a, b);

printf(“Promedio = %f\n”, resultado);

}

Funcion void.

Las funciones void dan una forma de emular, lo que en otros lenguajes se conoce como procedimientos (ej. pascal). Se usan cuando no requieren  regresar un valor. Se muestra un ejemplo que imprime los cuadrados de ciertos numeros.

#include<stdio.h>

void cuadrados(){

int contador;

for(contador = 1;contador <10; contador++)

printf(“%d\n”, contador*contador);

}

main(){

cuadrados();

}

FUNCIONES Y ARREGLOS.

Cuando se usan un arreglo como un argumento a la funcion, se pasa solo la direccion de arreglo y no la copia del arreglo entero podemos considerar el nombre del arreglo sin ningun indice como la direccion del arreglo.

Considerar lo siguiente ejemplo en donde se pasa un arreglo a la funcion imp_rev, observar que no es necesario especificar la dimension del arreglo cuando es parametro de la funcion.

ejemplo.

#include<stdio.h>

void imp_rev(char cadena[]){

int indice;

for(indice = strlen(cadena)-1; indice >= 0; indice–)

printf(“%c”,cadena[indice]);

}

main(){

char distros[]=”Ubuntu, Debian, Suse, Fedora, Slackware, Funtoo, Gentoo”;

imp_rev(distros);

}

Observar que en la funcion imp_rev se usa la funcion strlen() para calcular la longitud de la cadena sin incluir el terminador nulo. Por otra parte, la funcion imp_rev no usa la sentencia return ni para terminar de usar la funcion, ni para regresar algun valor.

PROTOTIPO DE FUNCIONES.

Antesde usar una funcion C debe tener conocimientos acerca del tipo de dato que regresara y el tipo de los parametros que la funcion espera.

La importancia de usar prototipos  de funciones es la siguiente:

  • Se hace el codigo mas estructurado y por lo tanto, mas facil de leer.
  • Se permite al compilador de C revisar las sintaxis de las funciones llamadas.

Lo anterior es hecho, dependiendo del alcance de la funcion. Basicamente si una funcion ha sido definida antes de que sea usada (o llamada), entonces se puede usar la funcion sin problemas.

Si no es asi, entonces la funcion se debe declarar. La declaracion simplemente maneja el tipo de dato que la funcion regresa parametros usados por la funcion.

Es una practica usual y conveniente escribir el prototipo de todas las funciones al principio del programa, sin embargo esto es estrictamente necesario.

Para declarar un prototipo de una funcion se indicara el tipo de dato que regresara la funcion, el nombre de la funcion y entre parentesis la lista del tipo de parametro de acuerdo al orden que aparecen en la definicion de la funcion.

ejemplo

int longcadena(char []);

Lo anterios declara una funcion llamada longcadena que regresa un caracter y acepta un cadena como parametro.

wozgeass: push eax, 1

int 80h

EOF!!!

hasta el proximo post…

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: