调用动态库:属性-链接器-输入-项目,添加需要调用的动态库。
头文件:Mylinklist.h
#ifndef _MYMLINKLIST_H_
#define _MYMLINKLIST_H_
typedef void LinkList;
typedef struct _tag_LinkListNode
{
struct _tag_LinkListNode* next;
}LinkListNode;
LinkList* LinkList_Create();
void LinkList_Destroy(LinkList* list);
void LinkList_Clear(LinkList* list);
int LinkList_Length(LinkList* list);
int LinkList_Insert(LinkList* list, LinkListNode* node, int pos);
LinkListNode* LinkList_Get(LinkList* list, int pos);
LinkListNode* LinkList_Delete(LinkList* list, int pos);
#endif
测试程序:list.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"Mylinklist.h"
typedef struct _Teacher
{
LinkListNode node;
int age;
char name[64];
}Teacher;
//void LinkList_Clear(LinkList* list);
//int LinkList_Length(LinkList* list);
//int LinkList_Insert(LinkList* list, LinkListNode* node, int pos);
//LinkListNode* LinkList_Get(LinkList* list, int pos);
//LinkListNode* LinkList_Delete(LinkList* list, int pos);
int main()
{
int i=0;
LinkList* list=NULL;
list = LinkList_Create();
if (list == NULL)
{
return;
}
Teacher t1, t2, t3, t4, t5;
memset(&t1, 0, sizeof(Teacher));
memset(&t2, 0, sizeof(Teacher));
memset(&t3, 0, sizeof(Teacher));
memset(&t4, 0, sizeof(Teacher));
memset(&t5, 0, sizeof(Teacher));
t1.age = 1;
t2.age = 2;
t3.age = 3;
t4.age = 4;
t5.age = 5;
int ret = LinkList_Insert(list, (LinkListNode*)&t1, LinkList_Length(list));
int ret2 = LinkList_Insert(list, (LinkListNode*)&t2, LinkList_Length(list));
int ret3 = LinkList_Insert(list, (LinkListNode*)&t3, LinkList_Length(list));
int ret4 = LinkList_Insert(list, (LinkListNode*)&t4, LinkList_Length(list));
int ret5 = LinkList_Insert(list, (LinkListNode*)&t5, LinkList_Length(list));
int len = LinkList_Length(list);
for (i = 0; i < LinkList_Length(list); i++)
{
struct _Teacher *tmp = NULL;
tmp=(struct _Teacher *)LinkList_Get(list, i);
if (tmp != NULL)
{
printf("age:%d\n",tmp->age);
}
}
while (LinkList_Length>0)
{
struct _Teacher *tmp = NULL;
tmp=(struct _Teacher *)LinkList_Delete(list, 0);
if (tmp != NULL)
{
printf("age:%d\n", tmp->age);
}
}
LinkList_Destroy(list);
return 0;
}
#include<stdlib.h>
#include<string.h>
#include"Mylinklist.h"
typedef struct _Teacher
{
LinkListNode node;
int age;
char name[64];
}Teacher;
//void LinkList_Clear(LinkList* list);
//int LinkList_Length(LinkList* list);
//int LinkList_Insert(LinkList* list, LinkListNode* node, int pos);
//LinkListNode* LinkList_Get(LinkList* list, int pos);
//LinkListNode* LinkList_Delete(LinkList* list, int pos);
int main()
{
int i=0;
LinkList* list=NULL;
list = LinkList_Create();
if (list == NULL)
{
return;
}
Teacher t1, t2, t3, t4, t5;
memset(&t1, 0, sizeof(Teacher));
memset(&t2, 0, sizeof(Teacher));
memset(&t3, 0, sizeof(Teacher));
memset(&t4, 0, sizeof(Teacher));
memset(&t5, 0, sizeof(Teacher));
t1.age = 1;
t2.age = 2;
t3.age = 3;
t4.age = 4;
t5.age = 5;
int ret = LinkList_Insert(list, (LinkListNode*)&t1, LinkList_Length(list));
int ret2 = LinkList_Insert(list, (LinkListNode*)&t2, LinkList_Length(list));
int ret3 = LinkList_Insert(list, (LinkListNode*)&t3, LinkList_Length(list));
int ret4 = LinkList_Insert(list, (LinkListNode*)&t4, LinkList_Length(list));
int ret5 = LinkList_Insert(list, (LinkListNode*)&t5, LinkList_Length(list));
int len = LinkList_Length(list);
for (i = 0; i < LinkList_Length(list); i++)
{
struct _Teacher *tmp = NULL;
tmp=(struct _Teacher *)LinkList_Get(list, i);
if (tmp != NULL)
{
printf("age:%d\n",tmp->age);
}
}
while (LinkList_Length>0)
{
struct _Teacher *tmp = NULL;
tmp=(struct _Teacher *)LinkList_Delete(list, 0);
if (tmp != NULL)
{
printf("age:%d\n", tmp->age);
}
}
LinkList_Destroy(list);
return 0;
}