我正在使用這樣的結構。我不喜歡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