C++
Résolu
zouzouange
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
cchristian Messages postés 921 Date d'inscription Statut Membre Dernière intervention -
cchristian Messages postés 921 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
alalalal , à toute personne qui maitrise un petit peu C++ , je vous supplie de m'aider , s'il vous plait j'ai un exam et je suis perdue là ..voici mon msn zhor0310@hotmail.com s'il vous plait aider moi
alalalal , à toute personne qui maitrise un petit peu C++ , je vous supplie de m'aider , s'il vous plait j'ai un exam et je suis perdue là ..voici mon msn zhor0310@hotmail.com s'il vous plait aider moi
4 réponses
Bonjour,
Pose tes questions même générales, on verra bien si quelqu'un peut t'aider.
Pose tes questions même générales, on verra bien si quelqu'un peut t'aider.
zouzouange
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
merci beaucoup cchristiian , bah j'ai un problème avec les fonctions "passage par valeur et par paramétres" et pii avc la fonction inline , et merci encore
cchristian
Messages postés
921
Date d'inscription
Statut
Membre
Dernière intervention
131
>
zouzouange
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
Le problème est-il véritablement résolu comme l'indique le statut de cette discussion ?
Bonsoir,
Inline
En ce qui concerne la fonction "inline" si on parle bien de la même chose, c'est assez simple. Il s'agit d'une instruction donnée au compilateur afin qu'il insert (au momoent de la compilation bien sûr) une copie de la fonction à chaque emplacement où la fonction est apellée et ce afin d'optimiser l'exécution (future) du programme concerné.
Lors de la phase d'éxécution la logique d'éxécution d'un programme déroule les instructions les unes après les autres, telles qu'elles ont été écrites. En terme d'optimisation, l'idéal pour le système serait qu'il n'y ait aucune rupture, aucun ordre de débranchement à une instruction autre que celle qui suit immédiatement celle qu'il est en train d'éxécuter.
Dans le cas d'une fonction chaque appel (disséminé si il y a plusieurs appels d'une même fonction dans le programme,) est une rupture, un débranchement de la séquence d'instructions en cours d'exécution vers celles de la fonction appelée. C'est évidemment du temps CPU de "pris" (de perdu) surtout si un appel (ou même plusieurs ) se trouve(nt) inscrit(s) dans une boucle ayant un grand nombres d'itérations.
forceinline :
Suivant les options de compilation en vigueur pour la compilation et suivant les compilateurs il n'est pas certain que le scénario précédent soit systématiquement réalisé. Pour obliger le compilateur à exécuter l'action malgré tout, il existe la fonction : forceinline laquelle se substitue évidemment à inline et qu'il convient d'utiliser à bon escient car dans le cas contraire il est possible d'obtenir, par un excès d'ajout de code, le résultat inverse de celui escompté c'est-à-dire une baisse de performance.
Code :
(force)inline int ma_fonction (char ................) {
Inline
En ce qui concerne la fonction "inline" si on parle bien de la même chose, c'est assez simple. Il s'agit d'une instruction donnée au compilateur afin qu'il insert (au momoent de la compilation bien sûr) une copie de la fonction à chaque emplacement où la fonction est apellée et ce afin d'optimiser l'exécution (future) du programme concerné.
Lors de la phase d'éxécution la logique d'éxécution d'un programme déroule les instructions les unes après les autres, telles qu'elles ont été écrites. En terme d'optimisation, l'idéal pour le système serait qu'il n'y ait aucune rupture, aucun ordre de débranchement à une instruction autre que celle qui suit immédiatement celle qu'il est en train d'éxécuter.
Dans le cas d'une fonction chaque appel (disséminé si il y a plusieurs appels d'une même fonction dans le programme,) est une rupture, un débranchement de la séquence d'instructions en cours d'exécution vers celles de la fonction appelée. C'est évidemment du temps CPU de "pris" (de perdu) surtout si un appel (ou même plusieurs ) se trouve(nt) inscrit(s) dans une boucle ayant un grand nombres d'itérations.
forceinline :
Suivant les options de compilation en vigueur pour la compilation et suivant les compilateurs il n'est pas certain que le scénario précédent soit systématiquement réalisé. Pour obliger le compilateur à exécuter l'action malgré tout, il existe la fonction : forceinline laquelle se substitue évidemment à inline et qu'il convient d'utiliser à bon escient car dans le cas contraire il est possible d'obtenir, par un excès d'ajout de code, le résultat inverse de celui escompté c'est-à-dire une baisse de performance.
Code :
(force)inline int ma_fonction (char ................) {