为什么
//The type anything_at_all exists nowhere.
typedef struct anything_at_all lol;
编译没有错误,而
//The type anything_at_all_2 exists nowhere.
typedef anything_at_all_2 rofl;
产生错误?
结构有什么特别之处?在某种程度上,我很高兴它能像这样工作,因为它允许我们创建不透明的结构。但是理解为什么它的作用会很好。
答案 0 :(得分:-1)
您可以声明struct
而无需定义它。这称为前向声明。它允许你做这样的事情:
struct s1;
struct s2 {
int x;
struct s1 *p;
};
struct s1 {
int y;
struct s2 *p;
};