Typedef and struct in C

3
这两者有什么不同吗:

typedef struct ddwq{
    int b;
}ta;

typedef struct {
    int b;
}ta;

1
一些老旧的调试器对匿名结构体支持存在问题,因此即使代码从未使用过标签,有标签也会对其有所帮助。 - user3386109
1个回答

7
在前一种情况下,你可以将结构体的类型引用为struct ddwqta。在后一种情况下,你只能将其引用为ta,因为该结构体没有标签。
如果结构体包含指向自身的指针,则必须使用第一种情况,例如:
typedef struct ddwq{
    int b;
    struct ddwq *p;
}ta;

结构体内部无法看到类型名称ta,所以结构体必须有一个标记名称来引用自身。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接