Maison >développement back-end >C++ >Référence Const en C : avant ou après le spécificateur de type ?

Référence Const en C : avant ou après le spécificateur de type ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-24 10:02:12272parcourir

Const Reference in C  : Before or After the Type Specifier?

Référence Const en C : Placement avant ou après le spécificateur de type

En C, lorsqu'il s'agit de références const, une question se pose concernant le placement du mot clé const par rapport au spécificateur de type : avant ou après ? Examinons la syntaxe et le comportement de ces deux formulaires.

Syntaxe :

  • Référence Const avant le spécificateur de type :

    int foo1(const Fred &arg) {
    ...
    }
  • Référence Const après le type Spécificateur :

    int foo2(Fred const &arg) {
    ...
    }

Comportement :

Les deux syntaxes aboutissent au même comportement. Le langage traite const T& et T const& comme types équivalents. Cela s'applique à la fois aux déclarations de pointeur et de référence.

Considérations stylistiques :

Bien qu'il n'y ait pas de différence fonctionnelle entre les deux options de placement, les préférences stylistiques varient. Cependant, il existe certains arguments en faveur de la préférence pour const T& (et const T*) :

  • Cohérence avec les textes standards : const T& est le style utilisé à la fois dans le livre C Programming Language de Bjarne Stroustrup et dans le standard C lui-même.
  • Ubiquité : const T&/const T* est empiriquement plus courant dans le code C et C. que son emplacement alternatif.
  • Ambiguïté de l'analyse :Erreur de l'astérisque avec T const* est un problème potentiel, tandis que const* T n'est pas une syntaxe valide.

La règle d'analyse de droite à gauche souvent citée en faveur du placement de const après le spécificateur de type peut être subjective. const T& peut également être analysé de droite à gauche comme « référence à une constante T ».

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn