miércoles, 21 de septiembre de 2011

4. Funciones y métodos en C

Funciones
Es un concepto que se refiere a un bloque de código con nombre, que recibe datos (uno o varios) y después de hacerles un tratamiento (ejecutar instrucciones) devuelve un único dato. Por ejemplo, si queremos hacer una función que sume dos números enteros, crearíamos un bloque de código que devuelve un entero, de nombre suma, que recibe dos enteros llamados 'numero1' y 'numero2', declara una variable para almacenar el resultado, y después devuelve el dato. En una función es obligatorio añadir la instrucción return.
int suma(int numero1, int numero2) {
 int resultado;

 resultado = numero1 + numero2;
 return resultado;
}

Métodos
Es un concepto que se refiere a un bloque de código con nombre, que recibe datos (uno o varios) y después de hacerles un tratamiento (ejecutar instrucciones) NO devuelve dato. Si queremos hacer un método que sume dos números enteros, la diferencia con la función es que se usa la palabra void para indicar que no devuelve dato, y no se añade la instrucción return.
void suma(int numero1, int numero2) {
 int resultado;

 resultado = numero1 + numero2;
}

Uso
Para ejecutar funciones y métodos se tienen que invocar (llamadas). Éstas llamadas se hacen a través de otros métodos y funciones. Por lo que todo método y función tiene como mínimo un padre, que efectúa la invocación. Por ejemplo, podemos crear la función suma, y un método que invoque a la función suma para calcular el resultado.
int suma(int numero1, int numero2) {
 int resultado;

 resultado = numero1 + numero2;

 return resultado;
}

void metodo(int numero1, int numero2) {
 int resultado;

 resultado = suma(numero1, numero2);
}
Función main
Hay una redundancia en el hecho de que todas las funciones y métodos tengan como mínimo un padre. Debe de haber uno de ellos que se ejecute primero. Entonces se ha propuesto una función como principal en C. Esta función recibe el nombre de main. Cuando ejecutamos nuestro programa, el sistema operativo busca la función main, y la ejecuta. A partir de ahí, las llamadas que hagamos dentro de la función main y las instrucciones que escribamos es cosa nuestra. Para indicar la función main, debemos escribirla con una sintaxis concreta. Hay varios tipos, pero lo mejor es escribir siempre la mas completa, que nos servirá para cualquier tipo de programa. El segundo dato que se le pasa a la función main '*argv[]' es un puntero a un array (aún no se ha explicado).
int main(int argc, char *argv[]) {
 int resultado;

 resultado = 1 + 2;

 return 1;
}
Nota: El valor a devolver por la función main no tiene relevancia, sólo permite que el sistema operativo sepa que el programa se ha terminado de ejecutar hasta la última instrucción (return siempre debe ser la última sentencia, ya que aborta la ejecución del programa). Los programadores suelen elegir el número 0 o el 1.
Ámbito de variables
Si tenemos varias funciones (o métodos) y en ellas declaramos variables con el mismo nombre, no hacen referencia a la misma parcela en la memoria. Porque cada función (o método) es independiente de otro. Aunque una función (o método) invoque a otra, no sabe lo que ésta hace internamente. El invocador sólo debe saber qué tipo de dato devuelve (para guardar el resultado en una variable del mismo tipo), el nombre de la función (o método), cuántos datos hay que introducirle a la función (o método), y de qué tipos de dato son.
int suma(int numero1, int numero2) {
 int resultado;

 resultado = numero1 + numero2;

 return resultado;
}

void metodo(int a, int b) {
 int resultado;

 resultado = suma(a, b);
}
Nota: En el método se puede ver como los datos que hay en las variables 'a' y 'b' se introducen en la función suma. Sin embargo en la función las variables donde recibe los datos se llaman 'numero1' y 'numero2'. Hay que tener en cuenta que lo que se introduce en la función son los valores que contienen las variables. Y cuando se reciben, se almacenan en variables que pertenecen a la función, y no al método que la ha invocado. Aunque tengan el mismo nombre, son variables distintas. Una variable pertenece al bloque de código en el que se declara. Esto se llama ámbito de variable. Por ejemplo, la variable 'numero1' tiene su ámbito en la función suma solamente.
    Vídeos explicativos
    Si quieres programar en Gnu/Linux.

    Si quieres programar en Windows.



< Página anterior - Siguiente página >



Licencia de Creative Commons
Espíritu programador by sergiolindo@gmail.com is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License.

No hay comentarios:

Publicar un comentario