是否有可能不仅嵌入结构,而且还在C中定义结构?
struct Student {
char *name;
struct Student *next;
};
struct School {
struct Student *Students; // definition and embedding inline possible?
}
答案 0 :(得分:4)
只要您立即使用内部结构声明来声明字段,就可以在另一个结构类型的声明中完全声明结构类型。您的声明可以重写为
struct School {
struct Student {
char *name;
struct Student *next;
} *Students;
};
struct Student
仍然是文件范围类型,就像在原始代码中一样。这样做并没有多大意义,因为它的可读性要低得多。