Comprendre les variables en ligne dans C 17
En 2016, le Comité des normes C a introduit les variables en ligne dans le cadre de la norme C 17. Cette fonctionnalité permet la création de variables de liaison externes qui peuvent être définies dans un fichier d'en-tête et référencées dans plusieurs unités de traduction sans entraîner d'erreurs d'éditeur de liens.
Comment fonctionnent les variables en ligne
Le spécificateur en ligne appliqué à une variable lui permet d'avoir un lien externe, ce qui signifie que plusieurs définitions de la variable dans différentes unités de traduction sont autorisées. Lorsqu'il existe plusieurs définitions, l'éditeur de liens en sélectionnera une et ignorera les autres.
Déclaration, définition et utilisation de variables en ligne
Les variables en ligne doivent être déclarées comme statiques. et peut être défini dans la définition de classe ou dans la portée de l'espace de noms. Ils peuvent être initialisés à l'aide d'un initialiseur accolade ou égal ou via une redéclaration distincte sans initialiseur s'ils sont déclarés avec le spécificateur constexpr. Par exemple :
struct Kath { static inline std::string const hi = "Zzzzz..."; };
Ce code déclare une variable statique en ligne nommée hi dans la structure Kath. La variable est initialisée avec la valeur "Zzzzz..." et est accessible à l'aide de Kath::hi à partir de n'importe quelle unité de traduction incluant l'en-tête où elle est définie.
Avantages des variables en ligne
Les variables en ligne offrent plusieurs avantages :
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!