请问typedef在这里是什么意思?

tempID002 2004-04-23 12:35:29
例子:
struct stack_node
{
int x;
int y;
struct stack_node *next;
};
typedef struct stack_node stack_list;
typedef stack_list *link;
link path = NULL;
---
请问,这里((typedef) (struct stack_node) (stack_list))后,下面为什么又来一个((typedef)( stack_list )(*link))呢?
我直接写成typedef struct stack_node *link;不就ok了吗?

另外,这里“*link”是怎么一回事啊?如果是变量那很容易理解就是指针变量,可作为类型来说,怎么还有这种形状的?
我的理解是这样的(肯定是错了,不知道哪里有错):“*link”只能作为一个整体区define别人,比如“*link *path = NULL”才对,怎么可以写成“link path=NULL”了??link不是变量而是类型啊!
...全文
44 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixiaohua 2004-04-23
  • 打赏
  • 举报
回复
typedef struct stack_node stack_list;
typedef stack_list *link;
你要搞清楚上面这两行的意思,上面的是结构本身,下面的是指向结构的指针!


link path = NULL;
link本身是一个指向stack_node的指针,上面这样写实际上相当于stack_node *path = NULL;


typedef并非真正的定义类型,它实际上是声明了某个类型的别名而已!
这样做,一方面便欲书写,一方面便欲理解!

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧