Évaluation des courts-circuits en C : est-elle aussi garantie qu'en Java ?
En Java, le mécanisme d'évaluation des courts-circuits garantit que les expressions sont évalués séquentiellement de gauche à droite, s’arrêtant dès qu’une fausse valeur est rencontrée. Ce comportement permet une utilisation efficace de conditions, telles que :
if (a != null && a.fun());
C peut-il offrir la même garantie ?
En C, l'évaluation de court-circuit est également utilisée pour types de données et opérateurs intégrés. Cependant, la garantie diffère de Java.
if (a != 0 && a->fun());
Ici, a != 0 est évalué à vrai ou faux, et seulement si il est évalué à vrai, c'est a->amusant () exécuté. Ce comportement garanti s'applique uniquement aux types intégrés.
Surcharge & et || en C
Les types personnalisés en C peuvent surcharger les && et || opérateurs. Lorsque cela se produit, l'évaluation en court-circuit n'est pas garantie. Par conséquent, la surcharge de ces opérateurs pour les types personnalisés est généralement déconseillée.
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!