172Fermer174
GoldenCrystalLe 10/01/2010 à 20:03
Le #define est géré par le préprocesseur, et le typedef est vu par le compilateur comme un type différent en tant que tel.
D'autre part, leur domaines d'applications sont différents, celui du #define est plus vaste et recouvre partiellement celui du typedef, mais pas entièrement.
Par exemple il n'y a pas d'équivalent direct à "typedef int tab[5];" avec #define.
En fait, c'est une manière formelle de dire au compilateur que tu veux telle ou telle équivalence de [nom de] type, ce qui permettra éventuellement de générer des warning ou erreurs utiles/intelligentes là ou le préprocesseur ne fait que du remplacement de texte bête et méchant sans se soucier aucunement de la validité du code ou de la signification de ce que tu lui fait faire.