utilité du typedef ou pourquoi en mettre de partout

utilité du typedef ou pourquoi en mettre de partout - C - Programmation

Marsh Posté le 25-03-2018 à 12:34:49    


 
Bonjour, dans mon cours sur les structures, les listes, les piles et les files, le typedef est employé à toutes les sauces, notamment dans des cas où l'on pourrait écrire le code sans, et je me pose la question de son utilité. Comme pour cet exemple :
 
typedef int ENTITÉ ;
 
ENTITÉ *p ;
 
En quoi c'est mieux que de définir int *p ; ?

Reply

Marsh Posté le 25-03-2018 à 12:34:49   

Reply

Marsh Posté le 25-03-2018 à 20:57:20    

Bonjour !
 
Rapidement, au moins 2 débuts de réponse :  
 
 * La compatibilité entre plates-formes : pour avoir un type qui se comporte de la même façon sur 2 plates-formes qui n'ont pas les mêmes types de base, par exemple,
 
 * Le côté pratique :  
   - Par exemple, pour de la lisibilité, on peut définir des types METRE, SECONDE, KILOGRAMME comme des flottants, et en lisant le prototype, on sait qu'il faut passer respectivement une longueur en mètres, une durée en secondes et une masse en kg,  
   - ou alors pour des pointeurs de fonctions ou des map assez complexes :

Code :
  1. typedef double (*t_Fonction2IntVersDouble(int, int));
  2. typedef std::map<std::string, std::pair< double, std::vector < std::map< int, std::string> > > >::iterator iterateurMapComplexe;


Message édité par Farian le 25-03-2018 à 21:00:42

---------------
On n'est jamais très fort pour ce calcul !
Reply

Marsh Posté le 26-03-2018 à 10:02:00    

bonux7 a écrit :


 
Bonjour, dans mon cours sur les structures, les listes, les piles et les files, le typedef est employé à toutes les sauces, notamment dans des cas où l'on pourrait écrire le code sans, et je me pose la question de son utilité. Comme pour cet exemple :
 
typedef int ENTITÉ ;
 
ENTITÉ *p ;
 
En quoi c'est mieux que de définir int *p ; ?

Le jour ou tu décides de remplacer  
typedef int ENTITE;
par
typedef struct { /* une definition complexe*/} ENTITE;
Il suffira de rechercher les emplois de ENTITE dans ton code pour voir ce qui est affecté, alors que ça marchera pas pour int.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 28-03-2018 à 18:07:12    

Merci pour votre réponse! je cerne mieux la question

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed