• Miércoles 29 de Mayo de 2024, 16:58

Autor Tema:  meter en una funcion  (Leído 1215 veces)

tomario

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
meter en una funcion
« en: Viernes 31 de Diciembre de 2010, 11:56 »
0
hola en clase me han dado este codigo y tengo que meterlo en una funcion, cualquier ayuda que me puedan dar o como debo empezar, llevo dos dias y no he conseguido nada, gracias

Código: C
  1.  
  2. #include <stdio.h>  
  3. #ifndef _LINKEDLIST_H_
  4. #define _LINKEDLIST_H_
  5. #ifndef _POLYGONSTRUCT_H_
  6. #define _POLYGONSTRUCT_H_
  7. #include <GL/gl.h>  
  8. #define MAXVERTS 32
  9.  
  10.  
  11. typedef struct poly_struct {
  12.     int type;           /* E.g., 0=SQUARE, 1=POLY, 2=RECT, ... */
  13.     GLint numVerts;     /* # of vertices in polygon */
  14.     GLdouble v[MAXVERTS][2];    /* Polygon's vertex array:       */
  15.                 /* v[i][0] = vertex i's x-coord; */
  16.                 /* v[i][1] = vertex i's y-coord  */
  17.     GLdouble center[2];     /* Polygon's "center" point, for use in */
  18.                 /* rotating polygon                     */
  19.     GLdouble rot_angle;     /* Rotation angle for polygon (degrees) */
  20.     GLdouble rgb[3];        /* Polygon's color: 0.0=off, 1.0=max; */
  21.                 /* rgb[0]=red, [1]=green, [2]=blue    */
  22. } Polygon;
  23. #endif
  24.  
  25.  
  26.  
  27. typedef struct polygon_list_struct {
  28.     Polygon p;
  29.     struct polygon_list_struct *next,   /* Pointers to next, prev polygons */
  30.                                *prev;   /* in the doubly-linked list */
  31. } Polygon_list_node;
  32.  
  33.  
  34. #endif
  35.  
  36. /*
  37.  * Global pointers for the linked list:
  38.  */
  39. Polygon_list_node *head = NULL, /* Pointer to the head of the list */
  40.                   *curr = NULL, /* Pointer to the currently selected node */
  41.                   *tail = NULL; /* Pointer to the tail of the list */
  42.  
  43. void InsertAfter(Polygon_list_node *item, Polygon_list_node *afterMe) {
  44.    /*
  45.     * Inserts *item after *afterMe in the linked list:
  46.     */
  47.     if (afterMe == NULL) {
  48.         if (head == NULL && tail == NULL) { /* empty list */
  49.             head = tail = item;
  50.             item->prev = item->next = NULL;
  51.         }
  52.         else
  53.             fprintf(stderr,"InsertAfter: cannot insert after a NULL ptrn");
  54.         return;
  55.     }
  56.     item->prev = afterMe;
  57.     if (afterMe == tail) {
  58.         tail = item;
  59.         item->next = NULL;
  60.     }
  61.     else {
  62.         item->next = afterMe->next;
  63.         item->next->prev = item;
  64.     }
  65.     afterMe->next = item;
  66. }
  67.  
  68. void InsertBefore(Polygon_list_node *item, Polygon_list_node *beforeMe) {
  69.    /*
  70.     * Inserts *item before *beforeMe in the linked list:
  71.     */
  72.     if (beforeMe == NULL) {
  73.         if (head == NULL && tail == NULL) { /* empty list */
  74.             head = tail = item;
  75.             item->prev = item->next = NULL;
  76.         }
  77.         else
  78.             fprintf(stderr,"InsertBefore: cannot insert before a NULL ptrn");
  79.         return;
  80.     }
  81.     item->next = beforeMe;
  82.     if (beforeMe == head) {
  83.         head = item;
  84.         item->prev = NULL;
  85.     }
  86.     else {
  87.         item->prev = beforeMe->prev;
  88.         item->prev->next = item;
  89.     }
  90.     beforeMe->prev = item;
  91. }
  92.  
  93. void RemoveItem(Polygon_list_node *item) {
  94.    /*
  95.     * Removes *item from the linked list (but doesn't free() it):
  96.     */
  97.     if (item == NULL)       /* Should print out an error message */
  98.         return;
  99.     if (item == head && item == tail) { /* Only one element in the list */
  100.         head = tail = NULL;
  101.     }
  102.     else if (item == head) {
  103.         item->next->prev = NULL;
  104.         head = item->next;
  105.     }
  106.     else if (item == tail) {
  107.         item->prev->next = NULL;
  108.         tail = item->prev;
  109.     }
  110.     else {
  111.         item->prev->next = item->next;
  112.         item->next->prev = item->prev;
  113.     }
  114.     item->prev = item->next = NULL;
  115. }
  116.  
  117.  
  118.  
  119.  

tomario

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: meter en una funcion
« Respuesta #1 en: Martes 4 de Enero de 2011, 17:02 »
0
lo que necesito es hacer el main y en ese main llamar al resto de funciones.
si me pueden ayudar
gracias

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: meter en una funcion
« Respuesta #2 en: Martes 4 de Enero de 2011, 17:24 »
0
Cógete un libro de C y mírate la parte de funciones. Y si me apuras, léetelo entero. No tiene más vueltas.

Saludos.