Typedef langage C
Typedef langage C
Bonjour aux actifs du forum,
j'essaie de comprendre les listes chaînées du langage C.
Mais j'ai du mal avec ce qui va suivre:
typedef struct ListeRepere {
Element *debut;
Element *fin;
int taille;
}Liste;
Je ne vois pas à quoi correspond "Liste" à la fin...Si une personne saurait sa signification, je suis tout ouïe!
Merci!
Cdt.
j'essaie de comprendre les listes chaînées du langage C.
Mais j'ai du mal avec ce qui va suivre:
typedef struct ListeRepere {
Element *debut;
Element *fin;
int taille;
}Liste;
Je ne vois pas à quoi correspond "Liste" à la fin...Si une personne saurait sa signification, je suis tout ouïe!
Merci!
Cdt.
Re: Typedef langage C
Ta structure (créée avec struct) s'appellera ListeRepere, mais ton type (créé avec typedef) s'appellera Liste.
http://en.wikipedia.org/wiki/Typedef#Si ... eclaration
http://en.wikipedia.org/wiki/Typedef#Si ... eclaration
Fermat 2008-2010
Ulm 2010-?
Ulm 2010-?
Re: Typedef langage C
Merci pour cette réponse claire.
Je me pose à présent une autre question, toujours sur le même thème.
J'ai le programme ci-dessous:
#include <stdlib.h>
typedef struct element element;
struct element
{
int val;
struct element *nxt;
};
typedef element* llist;
Je me demande tout d'abord pourquoi y a -t-il marqué deux fois element à la seconde ligne?
Serait-ce une erreur?
Puis que signifie la dernière ligne? cela veut-il dire que l'on définit un nouveau type appelé element(donc de type structure) au pointeur llist?
J'ai besoin de lumière
, Merci 
Je me pose à présent une autre question, toujours sur le même thème.
J'ai le programme ci-dessous:
#include <stdlib.h>
typedef struct element element;
struct element
{
int val;
struct element *nxt;
};
typedef element* llist;
Je me demande tout d'abord pourquoi y a -t-il marqué deux fois element à la seconde ligne?
Serait-ce une erreur?
Puis que signifie la dernière ligne? cela veut-il dire que l'on définit un nouveau type appelé element(donc de type structure) au pointeur llist?
J'ai besoin de lumière


Re: Typedef langage C
http://en.wikipedia.org/wiki/Typedef#Si ... eclaration est clair non?
The purpose of typedef is to assign alternative names to existing types, most often those whose standard declaration is cumbersome, potentially confusing, or likely to vary from one implementation to another.
Ne confonds pas la structure elle même (les bits stockés en mémoire), son nom et son type.
The purpose of typedef is to assign alternative names to existing types, most often those whose standard declaration is cumbersome, potentially confusing, or likely to vary from one implementation to another.
Ne confonds pas la structure elle même (les bits stockés en mémoire), son nom et son type.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Typedef langage C
Bonsoir,
on a défini la structure element, on veut l'appeler tout simplement element à la première ligne, d'où la répétition element element.
Puis à la dernière ligne, on pose *llist qui possède la même structure que element. C'est ça?
J'espère avoir bien compris.
PS: l'informatique en anglais, je suis pas trop doué; je préfère la littérature et les films en anglais...
on a défini la structure element, on veut l'appeler tout simplement element à la première ligne, d'où la répétition element element.
Puis à la dernière ligne, on pose *llist qui possède la même structure que element. C'est ça?
J'espère avoir bien compris.
PS: l'informatique en anglais, je suis pas trop doué; je préfère la littérature et les films en anglais...

Re: Typedef langage C
Je ne suis pas certain de ta bonne compréhension.on a défini la structure element, on veut l'appeler tout simplement element à la première ligne, d'où la répétition element element.
typedaf ça te donne un alias (le plus souvent un nom plus court) pour un ***type***.
Ce n'est pas le nom de la structure pour lequel on se donne un alias mais pour le nom du type de cette structure.
"struct element" c'est le type de cette structure. On trouve ça trouve long et moche à taper et donc on choisit de l'appeler "element".
Par exemple, si tu veux un compteur de points, tu peux faire :
int your_score;
compute(int your_score);
mais tu peux aussi faire :
typedef int points;
points your_score;
compute(points your_score);
Ca n'apporte pas grand chose dans ce cas si ce n'est le fait que l'on voit qu'on ajoute des points (et non des salades ou des choux. Si on utilise juste "int", ça ne donne pas d'info sur ce qu'est cet entier). Mais **attention** : Ca ne change rien à rien. Pour le compilateur ça reste un int. Il ne dira rien si tu fais :
point a=2;
int b=3;
int c = a+b;
********Désolé mais l'info est une science est la science, en 2011, ça se fait en anglais********* (ça a par exemple été plutot en allemand à une époque mais depuis longtemps c'est en anglais). Pas moyen de faire de la science sans en parler la langue.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Typedef langage C
En ce moment, il existe une formation avec tutoriel en vidéo qui est très pratique et simple à assimiler sur le langage C. Il s’agit de http://forum.qtfr.org/discussion/11217/ ... -parallele. Peut être que ça aidera encore d’autres.
Re: Typedef langage C
Plus de 5ans
On tient un champion! 


Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.