便于使用指针的访问形式的结构体命名方式
在完成数据结构第一次实验报告的时候,被要求完成单链表的交并差运算。
结构体和主函数都是由老师写好的,没有注意结构体的命名形式。看着满屏的LinkList,故以为LinkList为结构体的别名。
在声明变量和申请内存时就使用了如下方式
LinkList *r = La;
a = (Linklist *)malloc(sizeof(Linklist));
编译时会报错
cpp|46|error: request for member 'data' in '* r', which is of pointer type 'LinkList {aka LNode*}' (maybe you meant to use '->' ?)|
于是回头查看结构体定义部分
typedef struct LNode
{
......
}LNode,*LinkList;
发现了如上的的定义形式,即 *LinkList
如此定义时 LinkList相当于 Lnode *
遂将源代码改为
**LinkList** r = La;
a = (**Linklist** )malloc(sizeof(**Lnode**));
这种定义方式虽然方便了程序员定义指针,但是更容易混淆和导致误解
有利有弊吧,项目小组内部商量好了的话感觉还是挺好使的