Creacion de una librería propia en C

19,166 views

Published on

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

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
19,166
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
152
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Creacion de una librería propia en C

  1. 1. Creación de una librería propia
  2. 2. Conceptos Básicos <ul><li>Interfaz </li></ul><ul><ul><li>El concepto formal se refiere al l í mite entre dos entidades distintas. </li></ul></ul><ul><ul><li>Al hablar de librerías, debemos reconocer la existencia de dos partes bien divididas: </li></ul></ul><ul><ul><ul><li>Los programas clientes, aquellos que usan las librerías </li></ul></ul></ul><ul><ul><ul><li>La implementación de las librerías, lo que determina como funciona internamente cada herramienta </li></ul></ul></ul><ul><ul><li>En términos de librerías, la interfaz se refiere al limite entre la implementación y los programas clientes </li></ul></ul>
  3. 3. Conceptos Básicos <ul><li>Interfaz </li></ul><ul><ul><li>Recordemos lo siguiente: </li></ul></ul><ul><ul><ul><li>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. </li></ul></ul></ul><ul><ul><li>Una interfaz es entonces el medio a través del cual, estas dos partes se comunican </li></ul></ul>Programa Interfaz Librería Envía argumentos Envía resultados
  4. 4. Diseño de una interfaz <ul><li>Las funciones y los procedimientos nos ayudan a reducir la complejidad de los programas. </li></ul><ul><li>Una interfaz le da a un programador cliente, acceso a un grupo de funciones. </li></ul><ul><li>Para añadir una función a una interfaz, debemos hacerlo con cierto criterio. </li></ul>
  5. 5. Criterios para diseñar una interfaz <ul><li>Una interfaz bien diseñada, debe cumplir los siguientes requisitos: </li></ul><ul><ul><li>Unificación : escogidas de acuerdo a cierto tema, el enfoque se debe mantener. </li></ul></ul><ul><ul><li>Simplicidad : número de parámetros, nombre adecuado, número de implementaciones. </li></ul></ul><ul><ul><li>Suficiencia : proveer cantidad de trabajo. </li></ul></ul><ul><ul><li>Generalidad : resolver un buen grupo de posibilidades. </li></ul></ul><ul><ul><li>Estabilidad : se pueden realizar cambios en la librería pero no necesariamente en el cliente. </li></ul></ul>
  6. 6. Aplicación: Números aleatorios
  7. 7. Ejercicio en Clase <ul><li>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” </li></ul><ul><li>Para resolver este problema debemos recordar que rand() nos da un numero entre 0 y RAND_MAX, es decir, RAND_MAX + 1 posibilidades. </li></ul><ul><li>Nosotros… no deseamos RAND_MAX +1 posibilidades, deseamos sólo 2. </li></ul>RAND_MAX 0 RAND_MAX/2 CARA CRUZ td 2*td 3*td 4*td 5*td 0 RAND_MAX 1 2 3 4 5 6
  8. 8. Implementación <ul><ul><li>void Randomize(void) </li></ul></ul><ul><ul><li>{ </li></ul></ul><ul><ul><li>srand((int) time(NULL)); </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>int RandomInteger(int v_inf, int v_sup) </li></ul><ul><li>{ </li></ul><ul><li>int r,k; </li></ul><ul><li>double d; </li></ul><ul><li>r = rand(); </li></ul><ul><li>d = (double) r / (double) (RAND_MAX +1); </li></ul><ul><li>d = d * (v_sup-v_inf+1); </li></ul><ul><li>k = (int) d + v_inf; </li></ul><ul><li>return k; </li></ul><ul><li>} </li></ul>
  9. 9. ¿Cómo crear la interfaz? <ul><li>La interfaz, como ya sabemos, es la cara que una librería, da a un cliente. </li></ul><ul><li>En una interfaz se pueden incluir: </li></ul><ul><ul><li>Prototipos de funciones </li></ul></ul><ul><ul><li>Declaraciones de constantes (usando #define) </li></ul></ul><ul><ul><li>Declaraciones de nuevos tipos de datos (enumeraciones y otros que veremos más adelante) </li></ul></ul><ul><li>Esto quiere decir que jamás se incluirá una implementación en una interfaz. </li></ul><ul><li>El formato general de una interfaz es: </li></ul>#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

×