Funciones

8
Funciones

description

Funciones de un sistema embebidos

Transcript of Funciones

Page 1: Funciones

Funciones

Page 2: Funciones

Funciones• Las funciones son los bloques de construcción del lenguaje C.

• Su propósito principal es el de permitir la re-utilización de bloques de código entre las diferentes partes de la aplicación, permitiendo la reducción del tamaño del código y la duplicidad.

Page 3: Funciones

Funciones• Ellas pueden recibir datos (parámetros de la función) del que llama y también enviar devuelta datos a él.

• El intercambio de datos entre la función y el que llama es generalmente hecha a través del STACK.

Page 4: Funciones

Funciones• La declaración de función se hace mediante la especificación del tipo de retorno, el nombre de la función y sus parámetros. La sintaxis general es la siguiente:

Type_specifier function_name(parameter list)

{Function body …..}

Page 5: Funciones

Funciones• Los datos pueden ser transferidos a la función en dos formas diferentes:

1. Por Valor: el valor del parámetro actual es transferido como el argumento de la función.

2. Por Referencia: la dirección del parámetro es transferido como el argumento de la función.

Page 6: Funciones

Funciones• El siguiente ejemplo muestra la implementación de una función que calcula el promedio de dos números. El valor resultante se retorna al que llama:

int average (int pa, int pb){ long temp = ((long)pa + pb)/2; return(temp);}

Page 7: Funciones

Funciones• Para hacer una llamada de función “por referencia”, es

necesario declarar los parámetros deseados como PUNTEROS. Más aún, la llamada de función deberá también utilizar punteros en vez de variables simples.

• Para demostrar esto, veamos una simple función SWAP: su propósito es el de intercambiar los valores de las dos variables.

void swap(char *v1, char *v2){ char temp; temp = *v2; *v2 = *v1; *v1 = temp;}

Page 8: Funciones

Funciones• La función swap puede ser llamada como se muestra:

swap(&var1,&var2); /* intercambia los contenidos de

“var1” y “var2”*/