« Programmation C/Types avancés » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 168 :
== Définitions de synonymes de types (typedef) ==
 
Le langage C offre un mécanisme assez pratique pour définir des synonymes de types. Il s'agit dedu l'instructionmot-clé <code>typedef</code>.
<pre>
typedef un_type synonyme_du_type;
</pre>
 
Contrairement auaux langagelangages à typage fort (comme le C++), le C se base sur les types atomiques pour décider de la compatibilité entre deux types. Dit plus simplement, la définition de nouveaux types est plus un mécanisme d'alias qu'une réelle définition de type. Les deux types sont effectivement parfaitement interchangeableinterchangeables. À la limite on pourrait presque avoir les mêmes fonctionnalités en utlisantutilisant le préprocesseur C, bien qu'avec ce dernier vous aurez certainement beaucoup de mal à sortir de tous les pièges qui vous seront tendus.
 
=== Quelques exemples ===
Ligne 189 :
</pre>
 
Ce mot clé est souvent utilisé conjointement avec la déclaration des structures, pour s'affranchirne depas devoir écrire à chaque fois le mot clé <code>struct</code>. Elle permet aussi de '''grandement''' simplifier les prototypes de fonctions qui prennent des pointeurs sur des fonctions en argument, ou retournent de tels types. Il est conseillé dans de tels cas de définir un type synonyme, plutôt que de l'écrire in extenso dans la déclaration du prototype. Considérez les deux déclarations :
<pre>
/* Déclaration confuse */