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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-15 10:52:02196parcourir

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

Référence Const : Avant vs. Après Type-Specifier

En C , il existe une différence subtile dans la syntaxe pour déclarer une référence const :

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

Les deux méthodes de déclaration produisent une référence constante à un objet Fred. Cependant, le placement du mot-clé const n'a aucun impact sémantique.

Question de style

Bien que le comportement de ces déclarations soit identique, il existe des préférences stylistiques à à considérer.

Certains préfèrent const T& (et const T*), citant :

  • Alignement avec le livre de Stroustrup et le standard C
  • Familiarité parmi les programmeurs C expérimentés
  • 🎜>
  • Utilisation courante dans l'industrie

D'autres privilégient T const& (et T const*), en fonction de la lisibilité :
  • Analyse cohérente de droite à gauche
  • Risque réduit d'égarer le * ou d'interpréter incorrectement T const*

Analyse de droite à gauche

Le droit à- La règle d'analyse à gauche stipule que les déclarations doivent être lues de droite à gauche. Par conséquent, const T& peut être interprété comme « une référence à un const T » ou « une référence const T ». De même, T const& peut être lu comme « une référence const à un T » ou « une référence T const ». Les deux interprétations sont grammaticalement correctes, ce qui rend le placement du mot-clé const moins impactant sur la lisibilité que certains le prétendent.

En fin de compte, le choix entre ces styles de déclaration est une question de préférence personnelle. Les deux sont syntaxiquement corrects et véhiculent la même signification.

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