Maison >développement back-end >C++ >Quel est l'ordre d'évaluation des paramètres en C et C ?

Quel est l'ordre d'évaluation des paramètres en C et C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-19 05:12:00344parcourir

What is the Parameter Evaluation Order in C and C  ?

Ordre d'évaluation des paramètres en C et C

L'ordre d'évaluation des paramètres de fonction en C et C est une considération importante pour les développeurs. Les normes C99 et C11 précisent que l’ordre d’évaluation n’est pas explicitement défini. Cela signifie que le compilateur est libre de déterminer l'ordre d'évaluation.

Cependant, il est important de noter que tous les effets secondaires des évaluations d'expressions d'arguments doivent prendre effet avant que la fonction ne soit appelée en C . En d'autres termes, toute modification des variables ou de tout autre état doit se produire avant l'exécution du corps de la fonction.

La norme C indique également que l'ordre d'évaluation de l'expression suffixe et de la liste d'expressions d'arguments n'est pas spécifié. Cela signifie que le compilateur peut déterminer l'ordre dans lequel ces expressions sont évaluées.

En revanche, la norme C11 précise qu'il y a un point de séquence après les évaluations du désignateur de fonction et des arguments réels mais avant l'appel réel . Cela signifie que l'évaluation des arguments réels est séparée de l'exécution du corps de la fonction appelée.

Concernant l'implémentation des appels de fonction, ni les standards C ni C ne précisent qu'ils doivent utiliser la pile matérielle. Il s'agit d'un détail d'implémentation qui est laissé au rédacteur du compilateur. Bien que de nombreuses architectures transmettent des paramètres via une pile matérielle, cela n'est pas universellement vrai.

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