Passer des pointeurs partagés : par référence ou par valeur
Lors de l'appel d'une fonction qui accepte un pointeur partagé, les développeurs sont confrontés au choix entre passer par référence const ou par valeur. Bien que passer par une référence const puisse sembler préférable pour des raisons de performances, la décision mérite un examen plus approfondi.
Selon les experts de la session 2011 C and Beyond « Ask Us Anything », il n'y a généralement aucun avantage à passer un pointeur partagé. par valeur. Le passage par référence const est l'approche recommandée, sauf si l'intention est de partager la propriété de l'objet.
Pourquoi passer par référence Const ?
Le passage par référence const garantit que le le pointeur partagé reste immuable au sein de la fonction, préservant sa valeur et empêchant les modifications involontaires. Cela correspond au comportement prévu d'un pointeur partagé, qui symbolise la propriété partagée d'un objet.
Pourquoi ne pas transmettre par valeur ?
Bien que le passage par valeur puisse créer un copie du pointeur partagé, les compilateurs C modernes optimisent la duplication inutile de l'objet géré sous-jacent. Le passage par valeur ne devient bénéfique que lorsque le pointeur partagé peut être optimisé pour le déplacement, permettant ainsi de transférer la propriété de l'objet géré à la fonction sans copie. Cependant, cette optimisation dépend de la version C spécifique utilisée.
Considérations supplémentaires
Le panel GoingNative « Ask Us Anything » de 2012 a approfondi ce sujet. Les principaux points à retenir de la discussion sont les suivants :
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!