结构的typedef问题

项目管理PMO 2002-04-12 11:23:21
我的C基础不好,所以有一些简单的问题。
为什么C程序中定义结构时经常要用到typedef呢?如:
typedef struct _AM_WIN_MenuText {
int idc;
int message;
} AM_WIN_MenuText;
为什么不直接把结构名定义为AM_WIN_MenuText然后使用就可以了。
取个类型的别名有什么作用呢?
...全文
21 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu_feng_fly 2002-04-12
  • 打赏
  • 举报
回复
同意polarislee(北极星) ( ) ,在c语言里面就是这样的,c++里面就没有这个问题了
joy8223 2002-04-12
  • 打赏
  • 举报
回复
也可以就是啦,不过这样写规范些
cococut 2002-04-12
  • 打赏
  • 举报
回复
,为了简化,清晰。比如,
vector<list<int *>*> temp(10);
可以简化为
typedef list<int *> listnum;
typedef vector<listnum *> vectornum;
vectornum temp(10);
2,定义指向成员的指针。
class A{
virtual sup() = 0;
}
typedef void (A::* pt)();
void f(A *a)
{
pt ptemp = &A::sup;
}
北极猩猩 2002-04-12
  • 打赏
  • 举报
回复
“直接把结构名定义为AM_WIN_MenuText然后使用”
这样你在使用时必须这样
struct AM_WIN_MenuText myVal;
定义了别名之后就可以
AM_WIN_MenuText myVal;
这样可以更清晰。
fsht 2002-04-12
  • 打赏
  • 举报
回复
那是因为不取别名的话,每次定义都要加struct
grsy 2002-04-12
  • 打赏
  • 举报
回复
因为你定义一个结构,在定义该结构类型的变量时,需要加上STRUCT关键字,
为了省事,才用TYPEDEF,这样就可以直接用别名了,不用加STRUCT.

69,336

社区成员

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

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