Comprendre la fonctionnalité du mot-clé auto en C
Le mot-clé auto a subi une transformation significative en C . Initialement considéré comme un spécificateur de classe de stockage redondant, il a désormais acquis une nouvelle fonctionnalité puissante en C 11.
Déclaration de types avec Auto
L'objectif principal de auto est de automatiquement déduire le type d’une variable en fonction de la valeur qui lui est attribuée. Cela simplifie grandement la déclaration des variables, en particulier lorsque des itérateurs ou d'autres structures de données complexes sont impliqués. Par exemple :
<code class="cpp">vector<int> numbers; auto it = numbers.begin(); // 'auto' deduces 'it' as an iterator of type 'vector<int>::iterator'</code>
Historique et mise en œuvre
auto existait en C avant même C 11, mais son utilisation était limitée et était rarement rencontrée. Sa nouvelle fonctionnalité a été introduite avec la norme C 11. Le processus de déduction de type dans Auto exploite la même infrastructure sous-jacente que celle utilisée par les compilateurs pour la déduction de type de modèle. Cela explique la portabilité généralisée d'auto entre divers compilateurs.
Utilisation étendue en C
Les révisions ultérieures de la norme C ont encore élargi l'utilisation d'auto. À partir de C 14, il peut être utilisé pour le type de paramètres de fonction lambda :
<code class="cpp">[](auto s) { return s + 1; }</code>
Cette syntaxe imite essentiellement la déduction de type de modèle, permettant au compilateur de déduire le type de paramètre. Dans C 20, la même fonctionnalité a été rendue disponible pour les fonctions régulières.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!