结构和typedef

前端之家收集整理的这篇文章主要介绍了结构和typedef前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
C中以下等价物?
// #1
struct myStruct {
    int id;
    char value;
};

typedef struct myStruct Foo;

// #2
typedef struct {
    int id;
    char value;
} Foo;

如果不是,我应该使用哪一个?

(是的,我看过thisthis.)

解决方法

不,他们并不完全相同.

在第一个版本中,Foo是一个名为struct myStruct的typedef.

在第二个版本中,Foo是一个未命名结构的typedef.

尽管在许多情况下,Foo都可以以相同的方式使用,但存在重大差异.特别地,第二个版本不允许使用前向声明来声明Foo,并且该结构体是一个typedef,而第一个将是.

猜你在找的C&C++相关文章