J'utilisais ma structure comme ceci. Je n'aime pas typedef comme je l'ai dit, il peut cacher des erreurs. Cependant, je regardais un exemple de code et j'ai vu des structures déclarées comme ça. Et c'est la façon normale de les déclarer.Différence dans la déclaration des structures
struct person
{
int age;
char name[32];
};
en utilisant comme ceci:
struct person person_a;
person_a.age = 20;
etc.
Cependant, j'ai vu des structures déclarées comme ceci:
struct
{
int age;
char name[32];
}person;
et
struct _person
{
int age;
char name[32];
}person;
Quelle est la différence entre tous ces différentes techniques, et comment décideriez-vous quand il est préférable d'utiliser chacun d'entre eux?
Un grand merci pour toutes les suggestions,
Je suis curieux de savoir pourquoi typedefs peut cacher des erreurs. J'ai tendance à préférer les typedefs, notamment parce que vous ne pouvez pas rencontrer de problèmes avec l'utilisation de 'extern void func (struct quelque chose * xxx);' sans une déclaration de 'struct something' à l'avance. Autrement dit, 'extern void func (quelque chose * xxx);' nécessite le typedef pour 'quelque chose' à compiler du tout. L'alternative compile - mais ne fait pas ce que vous attendez (bien que, dans l'ensemble, vous feriez avec elle). –