像往常一样,维基百科关于结构的文章不太清楚。它给出了结构的语法,如下所示:
[typedef] struct [struct_name]
{
type attribute;
type attribute2;
/* ... */
[struct struct_name *struct_instance;]
} [struct_name_t] [struct_instance];
- typedef 关键字在这里会做什么?
- [struct_name] 是什么意思?(它是你给新结构数据类型起的名字吗?)
- [struct_name_t] 是什么意思?
- [struct_instance] 是什么意思?(它是在创建结构的单个实例吗?)
- 我假设
[struct struct_name *struct_instance;]
在结构中创建了一个指向该结构的第二个实例的指针)。正确的?
我将不胜感激一个例子:假设我有三个文件:main.c、sub.c 和 sub.h。我想在 sub.h 中声明一个结构的实例,并在 sub.c 中实例化并使用它。假设我想要一个带有成员char name[20]
and的 Song 类型结构,char artist[10]
并说我想创建一个实例 mySong, {"Meinging", "Me"},这在 sub.c 和 sub.h 中看起来如何?
谢谢