C语言中是否有变量的别名定义?

icybird 2007-09-28 03:25:31
例如需要采用typedef定义一个结构,想这样

typedef struct
{
int member;
TList *next;
}TList;

但是在解析next报TList类型未知,以前记得有个方法,使用结构的别名:

typedef struct TList_tag
{
int member;
TList_tag *next;
}TList;

但是好像名字记错了.

另外,是否有其他方法实现?
不是先定义一个结构,然后typedef一下的那种.
...全文
702 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hunter8212 2007-09-29
  • 打赏
  • 举报
回复
5楼说对了~
3楼说的很明白呀:
/**********************/
typedef struct TList_Node
{
...
struct TList_Node *pNext;
}* TList;
/*这样TList是一个TList_Node的指针类型; */
cgrapefruit 2007-09-29
  • 打赏
  • 举报
回复
请问3楼:在第一种方法里,TList 是 struct TList_tag 类型。
在第二种方法里,TList是一个指向struct的指针类型。

这两种方法生成的类型不一样,不知道我理解的对不对?
wangkuiyue 2007-09-28
  • 打赏
  • 举报
回复
楼上正解
yevv 2007-09-28
  • 打赏
  • 举报
回复
没有你所说的变量的别名

如果你非要那样,你可以按如下方法变通;

struct TList_tag;
typedef struct TList_tag TList;

struct TList_tag
{
...
TList *pNext;
};

不过说实话,看不出来有什么必要非要这么和自己过不去 :)
一般来说都是这么定义:
typedef struct TList_Node
{
...
struct TList_Node *pNext;
}* TList;

这样TList是一个TList_Node的指针类型;

在C中不能省略关键字struct 在C++中可以
mcu_2008 2007-09-28
  • 打赏
  • 举报
回复
正解!
neosu 2007-09-28
  • 打赏
  • 举报
回复
typedef struct TList_tag
{
int member;
struct TList_tag *next;
}TList;

69,369

社区成员

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

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