单项链接的接口问题
9 }student_t;
10
11 typedef struct _slist_student{
12 slist_node_t node; // 包含链表结点
13 student_t student; // 学生记录
14 }slist_student_t;
15
16 int student_info_read (student_t *p_student) // 读取学生记录,随机产生,仅供测试
17 {
18 int i;
19
20 for (i = 0; i < 9; i++) { // 随机名字,由 'a' ~ 'z' 组成
21 p_student->name[i] = (rand() % ('z' - 'a')) + 'a';
22 }
23 p_student->name[i]= '\0'; // 字符串结束符
24 p_student->sex = (rand() & 0x01) ? 'F' : 'M'; // 随机性别
25 p_student->height = (float)rand() / rand();
26 p_student->weight = (float)rand() / rand();
27 return 0;
28 }
29
30 int list_node_process (void *p_arg, slist_node_t *p_node)
31 {
32 student_t *p_s = &(((slist_student_t *)p_node)->student);33 printf("%s : %c %.2f %.2f\n", p_s->name, p_s->sex, p_s->height, p_s->weight);
34 return 0;
35 }
36
37 int main(int argc, char *argv[])
38 {
39 slist_head_t head;
40 slist_student_t s1, s2, s3, s4, s5;
41 srand(time(NULL));
42 slist_init(&head);
43
44 student_info_read(&s1.student);
45 student_info_read(&s2.student);
46 student_info_read(&s3.student);
47 student_info_read(&s4.student);
48 student_info_read(&s5.student);
49
50 slist_add_head(&head, &s1.node);
51 slist_add_head(&head, &s2.node);
52 slist_add_head(&head, &s3.node);
53 slist_add_head(&
周立功 相关文章:
- 电源软启动的实用设计技巧(07-16)
- 周立功:动态分布内存——malloc()函数与calloc()函数(07-22)
- 周立功“程序设计与数据结构”:深度解剖动态分布内存的free()函数与realloc()函数(07-25)
- 周立功教你学程序设计技术:做好软件模块的分层设计,回调函数要这样写(07-30)
- 周立功教你学C语言编程:教你数组是如何保存指针的(07-31)
- 算法的泛化问题,这些坑你可能都经历过!|周立功教你学软件设计(08-01)