通常这个typedef使代码更清晰:
typedef struct {
int x;
} X;
如果我想在结构中有一个需要指针的列表怎么引用它们呢?
struct X{
int x;
struct X * next;
}
这有效,但现在我没有这个的typedef?
答案 0 :(得分:3)
你可以像任何其他结构一样进行typedef:
typedef struct X {
int x;
struct X * next;
} X;
或者您可以在结构之前执行typedef:
typedef struct X X;
struct X {
int x;
X * next;
};
在上面的第一种情况中,我们必须在其内部引用 struct ,因为还没有定义typedef。在第二种情况下,我们在struct之前明确定义了typedef,因此可以在里面使用它。
请注意,对结构和typedef使用相同的名称有时会有些混乱,但它没有任何问题。
答案 1 :(得分:0)
typedef struct Y{
int x;
struct Y *next;
} X;