 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Jean-Noël Mégoz Guest
|
Posted: Tue Apr 06, 2004 3:05 pm Post subject: Re: du C au C++ |
|
|
"Jean-Marc Bourguet" <jm (AT) bourguet (DOT) org> a écrit dans le message de
news:pxbekrfio0v.fsf (AT) news (DOT) bourguet.org...
| Quote: | En C, c'est le nom de la structure, qui est dans un espace de nommage
separe et donc n'est pas un nom de type. Il est relativement courant
d'avoir
typedef struct truc { ... } truc;
Qui est autorise en C++ par compatibilite avec le C.
|
Il est tout aussi courant d'écrire :
typedef struct
{
} t_truc;
Le fait de nommer la structure après le "typedef struct" n'est nécessaire
qu'en cas de liste chaînée (la structure faisant alors référence à
elle-même) :
typedef struct chainon
{
chainon* suivant;
} t_chainon;
|
|
| Back to top |
|
 |
Franck Franck Branjonneau Guest
|
Posted: Tue Apr 06, 2004 3:30 pm Post subject: Re: du C au C++ |
|
|
"Jean-Noël Mégoz" <nospam_jnmegoz (AT) infonie (DOT) fr> écrivait:
| Quote: | "Jean-Marc Bourguet" <jm (AT) bourguet (DOT) org> a écrit dans le message de
news:pxbekrfio0v.fsf (AT) news (DOT) bourguet.org...
En C, c'est le nom de la structure, qui est dans un espace de nommage
separe et donc n'est pas un nom de type. Il est relativement courant
d'avoir
typedef struct truc { ... } truc;
Qui est autorise en C++ par compatibilite avec le C.
Le fait de nommer la structure après le "typedef struct" n'est nécessaire
qu'en cas de liste chaînée (la structure faisant alors référence à
elle-même) :
typedef struct chainon
{
chainon* suivant;
} t_chainon;
|
Non, ce n'est pas nécessaire :
struct t_chainon;
struct t_chainon {
t_chainon* suivant;
};
--
Franck Branjonneau <fasbjx (AT) free (DOT) fr>
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Tue Apr 06, 2004 4:22 pm Post subject: Re: du C au C++ |
|
|
Franck Franck Branjonneau <fasbjx (AT) free (DOT) fr> writes:
| Quote: | "Jean-Noël Mégoz" <nospam_jnmegoz (AT) infonie (DOT) fr> écrivait:
"Jean-Marc Bourguet" <jm (AT) bourguet (DOT) org> a écrit dans le message de
news:pxbekrfio0v.fsf (AT) news (DOT) bourguet.org...
En C, c'est le nom de la structure, qui est dans un espace de nommage
separe et donc n'est pas un nom de type. Il est relativement courant
d'avoir
typedef struct truc { ... } truc;
Qui est autorise en C++ par compatibilite avec le C.
Le fait de nommer la structure après le "typedef struct" n'est
nécessaire qu'en cas de liste chaînée (la structure faisant alors
référence à elle-même) :
|
Necessaire ou pas, la structure que je donne ci-dessus est idiomatique
en C, au moins dans les organisations que j'ai frequentees.
| Quote: | typedef struct chainon
{
chainon* suivant;
} t_chainon;
Non, ce n'est pas nécessaire :
|
En C++, je crois que tout le monde est d'accord il ne faut l'utiliser
que si la compatibilite avec le C est importante. Mais la discussion
portait justement sur le fait que c'est une difference avec le C.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|