最近在指导学生开发VxWorks下的程序,其中要使用双向链表lstLib,由于所参考的VxWorks的书中没有给出例子。写了下面这个简单的例子。
Code
#include <stdlib.h>
#include <stdio.h>
#include <lstLib.h>
typedef struct _Queue
{
NODE * next;
NODE * prev;
int age;
char name[255];
} QUEUE;
LIST list;
void TestList()
{
QUEUE *p;
int i;
lstLibInit();
lstInit(&list);
for(i = 0; i < 10; i++)
{
p = malloc(sizeof(QUEUE));
if(p)
{
p->age = i * 5;
sprintf(p->name, "person %d", i);
lstAdd(&list, (NODE*)p);
}
}
for(i = 0; i < 10; i++)
{
p = (QUEUE*)lstGet(&list);
if(p)
{
printf("name = %s, age = %d\n", p->name, p->age);
free(p);
}
}
lstFree(&list);
}
#include <stdlib.h>
#include <stdio.h>
#include <lstLib.h>
typedef struct _Queue
{
NODE * next;
NODE * prev;
int age;
char name[255];
} QUEUE;
LIST list;
void TestList()
{
QUEUE *p;
int i;
lstLibInit();
lstInit(&list);
for(i = 0; i < 10; i++)
{
p = malloc(sizeof(QUEUE));
if(p)
{
p->age = i * 5;
sprintf(p->name, "person %d", i);
lstAdd(&list, (NODE*)p);
}
}
for(i = 0; i < 10; i++)
{
p = (QUEUE*)lstGet(&list);
if(p)
{
printf("name = %s, age = %d\n", p->name, p->age);
free(p);
}
}
lstFree(&list);
}