inline, disons que je V te le faire version chanson :
Imagine que tu veilles afficher les paroles d´une chanson, ou le refrain revient souvent :
Tu vas faire une fonction Refrain et tu vas faire ceci :
void Refrain()
{
printf("refrain 1er phrase\n");
printf("refrain 2e phrase\n");
printf("refrain 3e phrase\n");
. ..
}
void main()
{
printf("blablabla\n");
Refrain();
printf("blablabla\n");
Refrain();
printf("blablabla\n");
Refrain();
printf("blablabla\n");
}
tu vois déja l´intéret de la fonction Refrain ici, non ?
Bon, quand le prog va éxécuter, il va écrire les blabla, puis appeler la fonction refrain : appeler une fonction est un truc qui prend un peu de temps ( tres tres peu, mais un chouia : le temps de la trouver, d´empiler certains trucs, mais ça oublie, dis toi juste que ça prend un chouia de temps)
maintenant considère le meme programme avec :
inline void Refrain()
au lieu de
void Refrain()
Ce qui va se passer, c´est que AVANT la compilation, le compilateur va transformer ton programme en :
void main()
{
printf("blablabla\n");
printf("refrain 1er phrase\n");
printf("refrain 2e phrase\n");
printf("refrain 3e phrase\n");
. ..
printf("blablabla\n");
printf("refrain 1er phrase\n");
printf("refrain 2e phrase\n");
printf("refrain 3e phrase\n");
. ..
printf("blablabla\n");
printf("refrain 1er phrase\n");
printf("refrain 2e phrase\n");
printf("refrain 3e phrase\n");
. ..
printf("blablabla\n");
}
Résultat : PAS d´appel de fonction, c´est un chouia plus rapide donc ! !
par contre, le programme est beaucoup plus gros ! !
A toi de choisir...
Dis toi que inline est necessaire que dans des cas EXTREMES, tu ne devrais pas t´en servir, sauf si tu as une fonction dans une boucle avec plusieurs milliers, voir millions d´appels par seconde, sinon, ça ne vaut pas le coup.
Perso, je n´ai encore jamais eu le réel besoin d´utiliser inline...