请点评下这种接口生命的优缺点(《C语言接口与实现》中的)
刚上大学时候粗略看过一点,只觉得里面的数据结构实现的牛逼闪闪,拿里面的List_T写过一个Windows下的任务管理器就放那儿了。代码基本能看懂,但接口为啥写成那样就不知道了。
现在大学快毕业了,水平提高了一点,又翻到了,就求个甚解吧。。
里面的结构基本都是这样定义的:
.h文件:
#ifndef STUDENT_H#define STUDENT_H
#define T Student_T
typedef struct T *T;
#undef T
#endif
.c文件:
#include "student.h"
//定义
#define T Student_T
struct Student_T
{
int age;
char name[32];
};
//函数实现
T create_Student()
{
T s = NULL;
s = malloc(sizeof(*s));
s->age = 100;
strcpy(s->name,"wocao");
return s;
}
#endif
基本上每个结构体都是这样写的。
我认为优点是:
* 都是堆上分配
* 类型统一,不带*号
缺点:
* 乍一看乱七八糟,不容易懂
请大家点评下,看看我理解的对不对
(除了这本书中的这些源码,还没见过也写成这样的。。)