Se connecter / S'enregistrer
Votre question

"inline" en c++ c'est quoi?

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
2 Août 2004 21:08:20

bonjour j'ai 16 ans et je débute en c++ j'aimrai savoir tout simplement a quoi sert exactement la commande "inline" dans les fonction du C++
J'utilise jusqua present "int" et je ne vois pas la diference entre ces 2 commandes pourrier vous m'expliquer svp en quoi celle ci sont diferente?
merci.
Vive le C++! :-D
Mes respect a tout les programeurs que j'admirent.

Autres pages sur : inline

3 Août 2004 02:18:36

Salut,


Citation :

j'aimrai savoir tout simplement a quoi sert exactement la commande "inline" dans les fonction du C++



Le mot-clé inline est un peu ce qu'est le #define du C.

En fait le 'problème' (même si ça en ai pas un), se situe au niveau de la compilation et de l'execution du programme .

Imagines, tu écris une fonction 'tres simple' qui te retourne un nombre et que cette même fonction soit appélée plusieurs fois (dans une boucle ou autre).

par exemple :

Citation :


//une fonction retournant un nombre
int fonction (int a, int b) {
if (a < b)
return (a);
else
return (b);
}

void main () {
int a2, b2 = 0;
...
fonction (a2, b2);
...
}



Le compilateur devra inserer du code pour récuperer la valeur passer a fonction() et ensuite re-inserer du code pour le retour de la fonction donc le 'probleme' est en fait le temps d'execution (appel - retour) et peut être resolue en déclarant la fonction inline.





Citation :


//une fonction en ligne retournant un nombre
inline int fonction (int a, int b) {
if (a < b)
return (a);
else
return (b);
}

void main () {
int a2, b2 = 0;
...
//fonction (a2, b2) n'est pas appelée
//en revanche le code de la fonction la remplace
if (...) ...
}



Mais il faut quand même reflechir a son utilisation, (pourquoi vais-je l'utiliser?, est-ce vraiment nécessaire ?).
Il se pourra aussi que le compilateur te sorte une erreur ou un warning si la fonction est trop complexe.
Lui seul jugera.

N'oublies pas non plus qu'avec une fonction inline, le choix du type retourné par la fonction, peut etre controlé ( la macro#define en C ne le permet pas ..) et on ne s'en plaindra pas.

Pour info, dans les classes, les méthodes sont implicitement déclarées inline si leur définition est écrite dans la classes même. :chance:





Citation :


J'utilise jusqua present "int" et je ne vois pas la diference entre ces 2 commandes pourrier vous m'expliquer svp en quoi celle ci sont diferente?



La difference est que INLINE n'est pas un type de données, tandis-que INT, float, char etc.., en sont (puis ce ne sont pas des commandes!!! mais tu le savais dejà, heing ?? :whistle:  ), et pour ton exemple, ben int retournera un entier numérique et inline demandera au compilateur de remplacer la fonction par son propre code. Assez différent quand même. ;) 




a+



:p lus1: je sais que je n'ai pas de leçons à donner, mais l'orthographe n'est pas non plus à négliger.
4 Août 2004 12:28:10

merci pour ta reponse ouned!c'est super sympa! :copain:
aller salut et merci d'avoir aussi bien detailler et expliquer "inline"!
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS