一、定义节点以及栈
节点的结构体中由于需要定义struct Node *pnext指针,所以typedef struct后面的Node不可以省略,否则结构体中无法定义next指针。有人可能会问,为什么不能用后面重命名的Node或者pMode来定义next指针呢,这是因为编译顺序导致的,因为需要定义next指针的位置在重命名的Node和pNode前面,所以不可以使用。
而栈的结构体中,不需要定义本结构体类型的指针,所以typedef struct后面的名字可以省略。
节点的结构体中由于需要定义struct Node *pnext指针,所以typedef struct后面的Node不可以省略,否则结构体中无法定义next指针。有人可能会问,为什么不能用后面重命名的Node或者pMode来定义next指针呢,这是因为编译顺序导致的,因为需要定义next指针的位置在重命名的Node和pNode前面,所以不可以使用。
而栈的结构体中,不需要定义本结构体类型的指针,所以typedef struct后面的名字可以省略。