Typedef langage C

olivier klaser

Typedef langage C

Message par olivier klaser » 10 févr. 2011 16:12

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.

Messages : 1024

Inscription : 19 mai 2010 21:33

Profil de l'utilisateur : Élève de lycée

Re: Typedef langage C

Message par VictorVVV » 10 févr. 2011 16:55

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
Fermat 2008-2010
Ulm 2010-?

olivier klaser

Re: Typedef langage C

Message par olivier klaser » 10 févr. 2011 18:14

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 :roll: , Merci :D

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Typedef langage C

Message par fakbill » 10 févr. 2011 20:34

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.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

olivier klaser

Re: Typedef langage C

Message par olivier klaser » 10 févr. 2011 22:52

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... :oops:

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Typedef langage C

Message par fakbill » 10 févr. 2011 23:40

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.
Je ne suis pas certain de ta bonne compréhension.
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é.

Louis15

Re: Typedef langage C

Message par Louis15 » 19 avr. 2016 12:25

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.

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Typedef langage C

Message par fakbill » 20 avr. 2016 15:28

Plus de 5ans :) On tient un champion! :)
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Répondre