list_head实践
''~``
( o o )
+------------------.oooO--(_)--Oooo.---------------------+
| Rick Wang |
| E-mail: rikyok@gmail.com |
| XIDIAN University http://www.xdwy.com.cn |
| Xi'an, China ( ) |
+---------------------\ (----( )-----------------------+
\_) ) /
(_/
( o o )
+------------------.oooO--(_)--Oooo.---------------------+
| Rick Wang |
| E-mail: rikyok@gmail.com |
| XIDIAN University http://www.xdwy.com.cn |
| Xi'an, China ( ) |
+---------------------\ (----( )-----------------------+
\_) ) /
(_/
1![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
#include <stdio.h>
3
#include "list.h"
4![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
struct test{
6
int a;
7
char b;
8
};
9
struct ts_hlist{
10
struct list_head member1;
11
int member2;
12
char member3;
13
double member4;
14
};
15![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
16
LIST_HEAD(hellolist);
17
struct ts_hlist hellots;
18
struct ts_hlist * rs;
19
int main(void){
20![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
struct test t1;
22
t1.a=8;
23
t1.b='z';
24
char *pchar="testok";
25
int i=0;
26
printf("length of int:%d char:%d double:%d long:%d\n",sizeof(int),sizeof(char),sizeof(double),sizeof(long));
27
printf("Address of t1 is:%p\nddd member of a is:%d\n member of b is:%c\n",&t1,t1.a,t1.b);
28
printf("Address of pchar is:%p\nvalue of pchar is:%s\n",pchar,pchar);
29
for(;i<strlen(pchar);i++)
30
{
31
printf("Address of member of pchar in pos %d is %p ,value of pchar in pos%d is:%c\n",i,pchar+i,i,pchar[i]);
32
}
33
printf("address base=0\n,than the address of a:%d\naddress of b:%d\n", &((struct test *)0)->a,&((struct test *)0)->b) ;
34![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
printf("If the NULL struct as 0 of ts_hlist is given,then the size of 0based willbe:like this:\n\n\n\n");
37
printf(" struct ts_hlist as NULL \n");
38
printf("%u --->|__________|\n",&( ((struct ts_hlist *)0)->member1) );
39
printf(" |__________|\n");
40
printf(" |__________|\n");
41
printf(" |__________|\n");
42
printf(" |__________|\n");
43
printf(" |__________|\n");
44
printf(" |__________|\n");
45
printf(" |__________|\n");
46
printf("%u --->|__________|\n",&( ((struct ts_hlist *)0)->member2) );
47
printf(" |__________|\n");
48
printf(" |__________|\n");
49
printf(" |__________|\n");
50
printf("%u--->|__________|\n",&( ((struct ts_hlist *)0)->member3) );
51
printf(" |__________|\n");
52
printf(" |__________|\n");
53
printf(" |__________|\n");
54
printf("%u--->|__________|\n",&( ((struct ts_hlist *)0)->member4) );
55
printf(" |__________|\n");
56
printf(" |__________|\n");
57
printf(" |__________|\n");
58
printf(" |__________|\n");
59
printf(" |__________|\n");
60
printf(" |__________|\n");
61
printf(" |__________|\n");
62![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
printf(" \n\n");
64
printf(" struct ts_hlist as allocate space\n");
65
int j=0;
66![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67
printf(" size of ts_hlist struct is %d\n",sizeof(struct ts_hlist));
68
for(;j<sizeof(struct ts_hlist);j++)
69
{
70
printf(" |__________|<--%p\n",&hellots+(unsigned long)j);
71
}
72
printf(" the address of head(type of head_list) is:%p\n",hellolist);
73![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
74
hellots.member2=3;
75
hellots.member3='A';
76
hellots.member4=44.33;
77
list_add_tail(&hellots.member1,&hellolist);
78
rs=list_entry(&hellots.member1,struct ts_hlist,member1);
79
printf(" the address of member1 is: %p\n",&hellots+(unsigned long)&( ((struct ts_hlist *)0)->member1) );
80
printf(" the address of member2 is: %p\n",&hellots+(unsigned long)&( ((struct ts_hlist *)0)->member2) );
81
printf(" the address of member3 is: %p\n",&hellots+(unsigned long)&( ((struct ts_hlist *)0)->member3) );
82
printf(" the address of member4 is: %p\n",&hellots+(unsigned long)&( ((struct ts_hlist *)0)->member4) );
83
printf(" Now we'll test the value area of ts_hlist>>>>>\n");
84
printf(" member2 of rs is:%d\n", rs->member2);
85
printf(" member3 of rs is:%c\n", rs->member3);
86
printf(" member4 of rs is:%g\n", rs->member4);
87
}
88![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
89![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
90
Result:
91![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
92![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
93
If the NULL struct as 0 of ts_hlist is given,then the size of 0based willbe:like this:
94![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
95![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
96
struct ts_hlist as NULL
97
0 --->|__________|
98
|__________|
99
|__________|
100
|__________|
101
|__________|
102
|__________|
103
|__________|
104
|__________|
105
8 --->|__________|
106
|__________|
107
|__________|
108
|__________|
109
12--->|__________|
110
|__________|
111
|__________|
112
|__________|
113
16--->|__________|
114
|__________|
115
|__________|
116
|__________|
117
|__________|
118
|__________|
119
|__________|
120
|__________|
121![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
122![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
123
struct ts_hlist as allocate space
124
size of ts_hlist struct is 24
125
|__________|<--0x8049d7c
126
|__________|<--0x8049d94
127
|__________|<--0x8049dac
128
|__________|<--0x8049dc4
129
|__________|<--0x8049ddc
130
|__________|<--0x8049df4
131
|__________|<--0x8049e0c
132
|__________|<--0x8049e24
133
|__________|<--0x8049e3c
134
|__________|<--0x8049e54
135
|__________|<--0x8049e6c
136
|__________|<--0x8049e84
137
|__________|<--0x8049e9c
138
|__________|<--0x8049eb4
139
|__________|<--0x8049ecc
140
|__________|<--0x8049ee4
141
|__________|<--0x8049efc
142
|__________|<--0x8049f14
143
|__________|<--0x8049f2c
144
|__________|<--0x8049f44
145
|__________|<--0x8049f5c
146
|__________|<--0x8049f74
147
|__________|<--0x8049f8c
148
|__________|<--0x8049fa4
149
the address of head(type of head_list) is:0x8049c74
150
the address of member1 is: 0x8049d7c
151
the address of member2 is: 0x8049e3c
152
the address of member3 is: 0x8049e9c
153
the address of member4 is: 0x8049efc
154
Now we'll test the value aear of ts_hlist>>>>>
155
member2 of rs is:3
156
member3 of rs is:A
157
member4 of rs is:44.33
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
48
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
50
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
53
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
61
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
70
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
72
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
73
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
74
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
75
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
76
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
78
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
80
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
81
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
82
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
83
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
84
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
85
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
86
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
87
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
88
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
89
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
90
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
91
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
92
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
93
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
94
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
95
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
96
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
97
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
98
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
99
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
100
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
101
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
102
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
103
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
104
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
105
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
106
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
107
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
108
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
109
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
110
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
111
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
112
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
113
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
114
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
115
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
116
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
117
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
118
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
119
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
120
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
121
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
122
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
123
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
124
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
125
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
126
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
127
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
128
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
129
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
130
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
131
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
132
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
133
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
134
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
135
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
136
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
137
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
138
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
139
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
140
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
141
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
142
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
143
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
144
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
145
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
146
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
147
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
148
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
149
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
150
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
151
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
152
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
153
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
154
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
155
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
156
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
157
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)