creacion de una librería propia en c

9
Creación de una librería propia

Upload: ronny-parra

Post on 30-May-2015

16.976 views

Category:

Education


0 download

DESCRIPTION

Presentación en la que se indica cómo crear tu propia interfaz para poder definir tu propia librería. Es un poco somera, pero esta buena

TRANSCRIPT

Page 1: Creacion de una librería propia en C

Creación de una librería propia

Page 2: Creacion de una librería propia en C

Conceptos Básicos• Interfaz

– El concepto formal se refiere al límite entre dos entidades distintas.

– Al hablar de librerías, debemos reconocer la existencia de dos partes bien divididas:

• Los programas clientes, aquellos que usan las librerías

• La implementación de las librerías, lo que determina como funciona internamente cada herramienta

– En términos de librerías, la interfaz se refiere al limite entre la implementación y los programas clientes

Page 3: Creacion de una librería propia en C

Conceptos Básicos

• Interfaz

– Recordemos lo siguiente:• Al “llamar” a una función de librería(como cliente), se

pasa información(argumentos) a la implementacion(creador) a a traves de la interfaz.

– Una interfaz es entonces el medio a través del cual, estas dos partes se comunican

Programa

Inte

rfaz

Librería

Envía argumentos

Envía resultados

Page 4: Creacion de una librería propia en C

Diseño de una interfaz

• Las funciones y los procedimientos nos ayudan a reducir la complejidad de los programas.

• Una interfaz le da a un programador cliente, acceso a un grupo de funciones.

• Para añadir una función a una interfaz, debemos hacerlo con cierto criterio.

Page 5: Creacion de una librería propia en C

Criterios para diseñar una interfaz• Una interfaz bien diseñada, debe cumplir los siguientes

requisitos:

– Unificación: escogidas de acuerdo a cierto tema, el enfoque se debe mantener.

– Simplicidad: número de parámetros, nombre adecuado, número de implementaciones.

– Suficiencia: proveer cantidad de trabajo.

– Generalidad: resolver un buen grupo de posibilidades.

– Estabilidad: se pueden realizar cambios en la librería pero no necesariamente en el cliente.

Page 6: Creacion de una librería propia en C

Aplicación: Números aleatorios

Page 7: Creacion de una librería propia en C

Ejercicio en Clase

• Escribir un programa que simule el lanzamiento de una moneda. El programa deber “lanzar” 10 veces una moneda e indicar si cayo “Cara” o “Cruz”

• Para resolver este problema debemos recordar que rand() nos da un numero entre 0 y RAND_MAX, es decir, RAND_MAX + 1 posibilidades.

• Nosotros… no deseamos RAND_MAX +1 posibilidades, deseamos sólo 2.

RAND_MAX0 RAND_MAX/2

CARA CRUZ

td 2*td 3*td 4*td 5*td0 RAND_MAX

1 2 3 4 5 6

Page 8: Creacion de una librería propia en C

Implementaciónvoid Randomize(void){

srand((int) time(NULL));}

int RandomInteger(int v_inf, int v_sup)

{

int r,k;

double d;

r = rand();

d = (double) r / (double) (RAND_MAX +1);

d = d * (v_sup-v_inf+1);

k = (int) d + v_inf;

return k;

}

Page 9: Creacion de una librería propia en C

¿Cómo crear la interfaz?• La interfaz, como ya sabemos, es la cara que una librería, da a un cliente.

• En una interfaz se pueden incluir:

– Prototipos de funciones– Declaraciones de constantes (usando #define)– Declaraciones de nuevos tipos de datos (enumeraciones y otros

que veremos más adelante)• Esto quiere decir que jamás se incluirá una implementación en una interfaz.

• El formato general de una interfaz es:

#ifndef _nombre_h#define _nombre_h

/*Líneas de #include para librerías que se vaya a usar*/

/*prototipos de funciones o procedimientos*//*definición de constantes*//*declaraciones de nuevos tipos de datos*/

#endif

El nombre de la librería

En programas complejos, una interfase puede ser incluida en varios archivos .c, para evitar “confusiones” se pregunta si la intefase no ha sido usada aun (ifndef: if not defined)

Si no ha sido usada, se define, caso contrario, se ignoran

todas las declaraciones de la misma