我正在使用这样的结构。我不喜欢typedef,因为我已经告诉它可以隐藏错误。 但是,我正在查看一些示例代码,并且我看到了像这样声明的结构。这是我声明它们的正常方式。使用这样声明结构的差异
struct person
{
int age;
char name[32];
};
:
struct person person_a;
person_a.age = 20;
etc.
声明如下不过,我所看到的结构:
struct
{
int age;
char name[32];
}person;
和
struct _person
{
int age;
char name[32];
}person;
是所有这些的区别不同的技术,以及如何决定何时最好使用每一个特定的一个。
非常感谢您的任何建议,
我很想知道为什么typedefs可以隐藏错误。我倾向于更喜欢typedefs - 至少因为你不能遇到使用'extern void func(struct something * xxx)'的问题;'没有事先声明“结构化”。也就是'extern void func(something * xxx)';'需要typedef来“编译”所有东西。替代编译 - 但没有做你期望的(尽管大体上,你会摆脱它)。 – 2009-06-11 04:32:51