struct中的struct定义

时间:2018-02-27 02:15:01

标签: c struct

是否有可能不仅嵌入结构,而且还在C中定义结构?

struct Student { 
    char *name;
    struct Student *next;
};

struct School {
    struct Student *Students; // definition and embedding inline possible?
}

1 个答案:

答案 0 :(得分:4)

只要您立即使用内部结构声明来声明字段,就可以在另一个结构类型的声明中完全声明结构类型。您的声明可以重写为

struct School {
  struct Student { 
    char *name;
    struct Student *next;
  } *Students;
};

struct Student仍然是文件范围类型,就像在原始代码中一样。这样做并没有多大意义,因为它的可读性要低得多。