C中以下等价物?
// #1 struct myStruct { int id; char value; }; typedef struct myStruct Foo; // #2 typedef struct { int id; char value; } Foo;
如果不是,我应该使用哪一个?
解决方法
不,他们并不完全相同.
在第一个版本中,Foo是一个名为struct myStruct的typedef.
在第二个版本中,Foo是一个未命名结构的typedef.
尽管在许多情况下,Foo都可以以相同的方式使用,但存在重大差异.特别地,第二个版本不允许使用前向声明来声明Foo,并且该结构体是一个typedef,而第一个将是.