Quelle est la différence entre 'typedef' et 'using' en C ?
En C 11, le mot-clé 'using' peut être utilisé pour créer des alias de type similaires au mot-clé traditionnel 'typedef'. Bien que les deux syntaxes obtiennent le même résultat en attribuant un nouveau nom à un type existant, il existe des différences subtiles dans leur sémantique à prendre en compte.
« using » est-il équivalent à « typedef » ?
Selon le standard C (7.1.3.2), 'using' introduit un nom de typedef avec une sémantique identique comme s'il s'agissait de défini en utilisant 'typedef'. Cela signifie que « utiliser » ne crée pas un nouveau type mais fournit plutôt un nom alternatif pour un type existant. Les conversions entre ces noms sont implicites.
Différences sémantiques
Malgré leur syntaxe et leur sémantique similaires, le mot-clé 'using' diffère de 'typedef' des manières suivantes :
template<typename T> using MyType = AnotherType<T, MyAllocatorType>;
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!