looper.c
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:1k
源码类别:

VxWorks

开发平台:

C/C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define NODES 10  
  5. struct byLightening {
  6.     int numb;
  7.     struct byLightening * nextNode;
  8.     struct byLightening * prevNode;
  9.     };
  10. int hitCount(void)
  11. {
  12.     static int hits = 0;
  13.     return(hits++);
  14. }
  15. struct byLightening * nodeAdd(void)
  16. {
  17.     struct byLightening *node;
  18.     node = (struct byLightening *) malloc(sizeof(struct byLightening));
  19.     node->nextNode = NULL;
  20.     node->numb = hitCount();
  21.     return(node);
  22. }
  23. struct byLightening * build(struct byLightening *head)
  24. {
  25.     struct byLightening * prev, * curr;
  26.     int i;   
  27.     prev = head;
  28.     for (i = 0; i < NODES; i++)
  29.     {
  30.         curr = nodeAdd();
  31.         prev->nextNode = curr;
  32. curr->prevNode = prev;
  33.         prev = curr;
  34. printf("node %dn", curr->numb);
  35.     }
  36.     return(curr);
  37. }
  38. void calc(int x)
  39. {
  40.      int y = (NODES/2) % x;
  41.      printf("calculated: %dn", x/y);
  42. }
  43. void demolish(struct byLightening *head)
  44. {
  45.     struct byLightening * curr, * tmp;
  46.     int j;   
  47.     curr = head;
  48.     for (j = 0; j < NODES; j++)
  49.     {
  50. tmp = curr;
  51. curr = curr->prevNode;
  52. printf("gone %dn", tmp->numb);
  53. calc(tmp->numb);
  54. free(tmp);
  55.     }
  56.     head = NULL;
  57. }
  58. void runLooper(void)
  59. {
  60.     struct byLightening *head, * tail;
  61.     int i;
  62.     head = nodeAdd();
  63.     tail = build(head);
  64.     demolish(tail);
  65. }