Maison > développement back-end > C++ > Quand le retour d'une valeur Const en C est-il réellement bénéfique ?

Quand le retour d'une valeur Const en C est-il réellement bénéfique ?

Mary-Kate Olsen
Libérer: 2024-12-08 15:49:10
original
961 Les gens l'ont consulté

When is Returning a Const Value in C   Actually Beneficial?

Quand le retour d'une valeur Const peut-il être bénéfique ?

L'article 3 de Effective C préconise le retour des valeurs sous forme de const dans certains cas. Cependant, cette pratique a soulevé des questions quant à son utilité et ses inconvénients potentiels.

Dans l'exemple spécifique fourni :

const Object myFunc() {
    return myObject;
}
Copier après la connexion

L'utilisation de const restreint l'utilisation de la valeur renvoyée car elle vous empêche d'effectuer certaines opérations sur des objets const sans nom, telles que des expressions arithmétiques.

Le but du retour par valeur const était principalement d'éviter que des booléens involontaires conversions de la valeur de retour. Cependant, en C moderne, l'utilisation du mot-clé explicite est recommandée à cet effet.

De plus, dans les scénarios où des opérations non const pourraient être effectuées sur l'objet renvoyé, le retour par la valeur const empêche les appels accidentels à un tel opérations sur des objets créés temporairement. Par exemple :

(a + b).expensive();
Copier après la connexion

Cependant, en C 11 et supérieur, il est fortement conseillé de renvoyer des valeurs non constantes pour profiter des références rvalue, qui ne fonctionnent qu'avec des rvalues ​​non constantes.

Par conséquent, même s'il existait autrefois une justification pour le retour par valeur const, elle est largement devenue obsolète dans le C moderne. En résumé, à moins qu'il n'y ait des considérations de performances spécifiques ou pour éviter des conversions booléennes involontaires (qui peuvent désormais être gérées avec explicite), renvoyer des valeurs par valeur const n'est généralement pas considéré comme préférable.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal