Fonction inline

jfk20004 Messages postés 39 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 13 novembre 2004 - 25 août 2004 à 19:06
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 26 août 2004 à 00:53
Pouvez vous me dire l'interet des fonctions inline:
Ce que je sais:
A la place d'un appel de la fonction ,le compilateur recopie
le code de la fonction:
Quelle difference pour le programmeur
MERCI ,bonne prog

12 réponses

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
25 août 2004 à 19:11
aucune, d'autant plus qu'elle sera inliner selon le bon vouloir du compilateur

il est inutile d'inliner une fonction recursive et une fonction appelé par un pointeur
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
25 août 2004 à 20:23
l'interet est : performance. si ta fonction est grosse, et appelée tres peu souvent, tu peux la mettre en inline (sinon gare a la place de l'exe). si elle est petiten genre "juste retourner un int", autant la mettre en inline, l'execution sera plus rapide.
le compilateur a le droit de ne pas inliner certaines fonctions. certaines ne le seront jamais : les fonction recursives, les fonction contenant des boucles, etc. je connais pas ttes les condition exactement....
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 août 2004 à 20:30
Une fonction avec boucle peut tout a fait passer en inline, suffit de regarder la sortie asm du compilo pour s'en convaincre.
VS possede aussi des options de compilation a cet effet.

ciao...
BruNews, Admin CS, MVP VC++
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
25 août 2004 à 20:32
ca c'est au bon vouloir du compilo....certains compilo ne permettront pas certaines fonctions avec boucle de passer en inline..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 août 2004 à 20:37
hormis les funcs recurrentes, sur VS 2003 on peut TOUT forcer en inline.

ciao...
BruNews, Admin CS, MVP VC++
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
25 août 2004 à 20:38
pr VS 2003 je savais pas, mais jfk n'est peut-etre pas sous VS 2003, il vaut mieux qu'il connaisse les regles generales que comment marche visual 2003 qui n'est peut-etre meme pas son compilo.......
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 août 2004 à 20:40
Ils y viendront tous (les compilos), vitesse oblige.

ciao...
BruNews, Admin CS, MVP VC++
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
26 août 2004 à 00:18
sous gcc aucun probleme egalement, et en generale les petite fonction sont inliner implicitement, avec les optimisations qui vont avec
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 août 2004 à 00:30
Oui c'etait couru comme affaire, les petits blocs ne sont jamais conserves, ça evite les empilages.
Sur VS, il y a une option a cocher si on veut garder les fonctions intrinseques, c'est tout dire qu'il previent des substitutions.

ciao...
BruNews, Admin CS, MVP VC++
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
26 août 2004 à 00:36
sous gcc on peut egalement limiter l'inlining des fonctions en fonction de leur taille
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 août 2004 à 00:43
Tout cela est devenu standard et comme d'hab les 'standards' seront adaptes avec un train de retard, tout comme nos generaux etaient toujours en retard d'une guerre.

ciao...
BruNews, Admin CS, MVP VC++
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
26 août 2004 à 00:53
c'est parfois les compilos qui sont en retard sur les standards

en fait chaque compilos possede ses particularités (souvent son propre runtime), gcc possede meme son extension du langage c qui autorise l'imbrication de fonctions
0
Rejoignez-nous