2009-01-09 9 views

Répondre

10

En fait, dans "C" standard, il est nécessaire de préciser mot-clé struct. Ceci est facultatif en C++.

C'est la raison pour laquelle certaines personnes définissent struct comme ceci:

typedef struct foo { ... } bar; 

pour pouvoir utiliser bar au lieu de struct foo. Cependant, certains compilateurs C n'appliquent pas cette règle.

0

Vous pouvez utiliser simplement "foo" si vous l'avez typé.

6

Oui. En C (par opposition à C++), les structures sont dans leur propre espace de noms. Donc, si vous avez défini une

struct sockaddr { ... } 

vous ne pouvez pas l'utiliser comme

sockaddr s; 
sockaddr *ps; 

Afin de rendre ce droit, vous pouvez utiliser typedef afin d'importer dans l'espace de noms non-struct des noms de type:

typedef struct sockaddr { ... } sockaddr; 
sockaddr s, *p; 
0

Cela dépend de la façon dont la structure est définie. Si elle est définie à l'aide d'un typedef, vous n'avez pas à mettre le mot-clé stuct devant. Mais si ce n'est pas un typedef, vous avez besoin du mot-clé struct.

struct aStruct 
{ 
// 
} ; 

struct aStruct abc; 
Questions connexes