读书人

不解?typedef在结构体中用法

发布时间: 2012-10-13 11:38:17 作者: rapoo

疑惑?typedef在结构体中用法
typedef struct SqList
{
ElemType *elem;
int length;
int listsize;
}SqList;

这里面的两个SqList分别代表什么,还是都是一样的。结构体变量还是其他的,求解结构体类型

[解决办法]
第一个SqList是“结构标签”

第二个SqList是“类型定义”
[解决办法]
推荐直接写成
typedef struct
{
ElemType *elem;
int length;
int listsize;
}SqList;

或者
struct SqList
{
ElemType *elem;
int length;
int listsize;
};
[解决办法]
1楼++,不好的风格,糟糕的风格。
2楼说的也对啊~
建议结构体不要用typedef,仅仅为了少写struct而掩盖了变量的本质。
//每天回帖即可获得10分可用分!
[解决办法]
第一个SqList是“结构体名称”

第二个SqList是“结构体类型”
typedef struct
{
ElemType *elem;
int length;
int listsize;
}SqList;


[解决办法]

探讨
引用:

第一个SqList是“结构标签”

第二个SqList是“类型定义”

哦,刚才看了维基百科的结构体的解释,有点懂了,继续看看

[解决办法]
个人观点,在同一段代码中“结构标签”和“结构类型”没有必要同时存在,更没有必要重名。
只用typedef 生成的"结构类型"就可以了。
[解决办法]
之前我也不知道,但是用的时候要么
struct A{
....
};
要么
typedef struct{
....
}A;
要么
typedef struct A{
.....
}_A;
定义最后一个时,以为A和_A是同一个,都只类型的
[解决办法]
第一个SqList是“tag”,第二个SqList是“type”

读书人网 >C语言

热点推荐