我在youtube上观看过不同人的视频,现在我有点困惑
前两个[(1) (2)]的类型相同,没有typedef,然后是两个[(3) (4)]与typedef的类型相同,但编写它们的方式不同
请提及以下任何以下所示结构是否错误以及数字原因。我正在为所有这些格式分配编号
(1)
struct tag{
int number;
char *name;
float num;
};
main()
{
struct tag name;
name firstmember;
------code-------
return 0;
}
我见过的下一个类型与上面相同,但是:
(2)
struct tag{
int number;
char *name;
float num;
}name;
main()
{
name firstmember;
------code-------
return 0;
}
接下来使用的是带有typedef的结构:
(3)
typedef struct tag{
int number;
char *name;
float num;
}name;
main()
{
name firstmember;
------code-------
return 0;
}
相同版本的typedef与其他版本:
(4)
struct tag{
int number;
char *name;
float num;
};
main()
{
typedef struct tag name;
name firstmember;
------code-------
return 0;
}
请提及上述任何示例中的任何一个是否有任何错误
最后,这个疑问与上面的例子完全不同
如果我们不在结构一词之后放置一个结构标签并且这样做
(5)
struct {
int number;
char *name;
float num;
}tag;
main(){}
这个词是'标记'仍然是结构标签或者如果它后面是'}'那它的结构名称呢?它是什么?如果它成为名称,为什么我们仍然使用结构标签?
请仔细阅读所有疑问并以精心编写的格式回复此问题