#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"list.h"
struct person{
char name[20];
int age;
struct list_head list; // 放在结构体哪都一样
int sex;
};
int main(void)
{
struct list_head *pos;
struct person person_head;
struct person *tmp;
INIT_LIST_HEAD(&person_head.list);
tmp = (struct person *)malloc(sizeof(struct person));
strncpy(tmp->name,"yexiang",strlen("yexiang"));
tmp->age = 28;
tmp->sex = 1;
list_add(&(tmp->list),&person_head.list);
tmp = (struct person *)malloc(sizeof(struct person));
strncpy(tmp->name,"xiaohua",strlen("xiaohua"));
tmp->age = 27;
tmp->sex = 0;
list_add(&(tmp->list),&person_head.list);
list_for_each(pos,&person_head.list)
{
tmp = list_entry(pos,struct person,list);
printf("name :[%s],age:[%d],sex=[%s]\n",tmp->name,tmp->age,(tmp->sex)?"man":"woman");
}
return 0;
}
结果:
name :[xiaohua],age:[27],sex=[woman]
name :[yexiang],age:[28],sex=[man]