Typedef结构定义,指向所述结构作为其元素的指针

时间:2011-11-10 06:42:30

标签: c struct typedef

通常这个typedef使代码更清晰:

typedef struct {
    int x;
} X;

如果我想在结构中有一个需要指针的列表怎么引用它们呢?

struct X{
   int x;
   struct X * next;
}

这有效,但现在我没有这个的typedef?

2 个答案:

答案 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;