Maison > développement back-end > C++ > Quel est l'ordre d'évaluation des paramètres dans les appels de fonctions C et C ?

Quel est l'ordre d'évaluation des paramètres dans les appels de fonctions C et C ?

Linda Hamilton
Libérer: 2024-12-26 15:20:14
original
252 Les gens l'ont consulté

What is the Order of Parameter Evaluation in C and C   Function Calls?

Ordre d'évaluation des paramètres dans les appels de fonction

Dans les langages de programmation comme C et C, l'ordre dans lequel les paramètres de fonction sont évalués est un sujet de débat. Cet article approfondit les spécificités décrites par les normes de langage respectives.

Langage C

Selon les normes C99 et C11, il n'y a pas d'ordre fixe pour évaluer les paramètres de fonction . L'évaluation du désignateur de fonction, des arguments et des sous-expressions qu'ils contiennent se produit dans un ordre non spécifié, mais il existe un point de séquence avant l'appel de fonction réel. Cela implique que les effets secondaires des évaluations de paramètres ont lieu avant que la fonction n'entre dans son corps.

Langage C

En C, la norme du langage précise que l'ordre d'évaluation des arguments dans les appels de fonction n’est pas spécifié. Tous les effets secondaires des évaluations d’expressions d’arguments se produisent avant l’entrée de la fonction. L'ordre d'évaluation de l'expression postfixe et de la liste d'expressions d'arguments n'est pas non plus spécifié.

Utilisation de la pile matérielle

Ni les normes C ni C n'exigent l'utilisation du pile matérielle pour transmettre les paramètres de fonction. La méthode de transmission des paramètres est un détail d'implémentation laissé au concepteur du compilateur. Bien que la plupart des architectures utilisent une approche basée sur la pile, elle n'est pas universellement implémentée.

Conclusion

L'ordre d'évaluation des paramètres de fonction en C et C peut varier en fonction de l'implémentation, car elle n'est pas explicitement définie par leurs normes linguistiques. Cependant, il est crucial de noter que les effets secondaires des évaluations d'arguments ont lieu avant que les fonctions respectives ne soient exécutées dans les deux langages.

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