Maison > développement back-end > C++ > L'ordre d'évaluation des opérandes est-il garanti en C et C ?

L'ordre d'évaluation des opérandes est-il garanti en C et C ?

DDD
Libérer: 2024-11-03 07:34:30
original
687 Les gens l'ont consulté

Is Operand Evaluation Order Guaranteed in C and C  ?

Ordre d'évaluation des opérandes dans les expressions

Lors de l'écriture d'expressions, il est important de comprendre l'ordre dans lequel les opérandes seront évalués. Cela peut avoir un impact sur le résultat de l'expression, en particulier lorsque des effets secondaires sont impliqués.

C et C

Dans C et C , l'ordre d'évaluation des opérandes est non précisé. Cela signifie que le compilateur est libre d'évaluer les opérandes dans l'ordre de son choix.

Par exemple, considérons l'expression a b. Il n’est pas garanti que a soit évalué avant b. Le compilateur peut choisir d'évaluer b en premier, puis de stocker le résultat dans une variable temporaire avant d'évaluer a.

La norme pour C indique spécifiquement que « l'ordre d'évaluation des arguments de la fonction n'est pas spécifié », et pour la normale opérateurs, "l'ordre d'évaluation des opérandes des opérateurs individuels et des sous-expressions des expressions individuelles [...] n'est pas spécifié."

C 11 et au-delà

Le libellé l’ordre d’évaluation des opérandes a légèrement changé dans C 11 et les versions ultérieures. La deuxième déclaration indique désormais que l'ordre est « non séquencé » plutôt que non spécifié. Cependant, il s’agit essentiellement du même concept. Le compilateur n'est toujours pas obligé d'évaluer les opérandes dans un ordre particulier.

Conclusion

Il est important d'être conscient que l'ordre d'évaluation des opérandes n'est pas spécifié en C et C. Cela peut avoir un impact sur le résultat des expressions, en particulier lorsque des effets secondaires sont impliqués. Lors de la rédaction d'expressions, il est préférable d'éviter de s'appuyer sur un ordre d'évaluation spécifique.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal