Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1424 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  compilation d'un inline ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

compilation d'un inline ?

n°539272
blackgodde​ss
vive le troll !
Posté le 14-10-2003 à 14:47:11  profilanswer
 

est-ce que, apres compilation,  
 

Code :
  1. class A
  2. {
  3.   int var;
  4. public:
  5.   inline int Get()
  6.   {
  7.     return var;
  8.   }
  9. };
  10. // plus loin dans le code
  11. A a;
  12. int i = a.Get();


 
sera pareil que
 

Code :
  1. class A
  2. {
  3. public:
  4.   int var;
  5. };
  6. // plus loin dans le code
  7. A a;
  8. int i = a.var;


 
?


---------------
-( BlackGoddess )-
mood
Publicité
Posté le 14-10-2003 à 14:47:11  profilanswer
 

n°539273
HelloWorld
Salut tout le monde!
Posté le 14-10-2003 à 14:48:20  profilanswer
 

Peut-être, peut-être pas...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°539277
blackgodde​ss
vive le troll !
Posté le 14-10-2003 à 14:51:26  profilanswer
 

(c'est plus les balises 'code' pour colorer le code ?)
 
ca dépend de quoi ? du compilo ?


---------------
-( BlackGoddess )-
n°539282
chrisbk
-
Posté le 14-10-2003 à 14:55:47  profilanswer
 

cpp
 
ouais ca depend du compilo, du mode compilation (debug / release...). Rien ne force le compilo a faire de l'inline, mais bon, n'importe quel compilo decent inlinera ca

n°539293
HelloWorld
Salut tout le monde!
Posté le 14-10-2003 à 15:01:24  profilanswer
 

Les derniers compilos proposent d'inliner comme ils veulent, en ignorant le mot clé inline.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°539298
blackgodde​ss
vive le troll !
Posté le 14-10-2003 à 15:02:21  profilanswer
 

ok, merci :)


---------------
-( BlackGoddess )-
n°539301
chrisbk
-
Posté le 14-10-2003 à 15:04:40  profilanswer
 

avec le mot cle "inline" (et les fonctions definies dans les header), VC fait une sorte de calcul pour savoir si l'inline vaut le coup. Tu peux "bypasser" (desolé) ce calcul via __forceinline (qui donc, forcera l'inline (quand c'est possible bien sur))
 
(aucune idee du support de ce mot cle sur les autres compilo, don't tape on my tete)
 

n°539336
blackgodde​ss
vive le troll !
Posté le 14-10-2003 à 15:32:24  profilanswer
 

merci pour cette précision :)


---------------
-( BlackGoddess )-
n°539391
Taz
bisounours-codeur
Posté le 14-10-2003 à 16:07:29  profilanswer
 

mais bon faut pas faire de la parano : si le inline te parait justifier et qu'il a un sens, ton compilo suivra ta directive. pas de soucis, ne remplaces jamais un une fonction par une macro ou le code lui même parce que t'as peur que ton compilo ne fassent pas le boulot

n°539395
iS@mi
Resistance is futile !
Posté le 14-10-2003 à 16:15:13  profilanswer
 

Taz a écrit :

mais bon faut pas faire de la parano : si le inline te parait justifier et qu'il a un sens, ton compilo suivra ta directive. pas de soucis, ne remplaces jamais un une fonction par une macro ou le code lui même parce que t'as peur que ton compilo ne fassent pas le boulot


 
Comment ca se fait qu'une fonction inline soit plus rapide ?

mood
Publicité
Posté le 14-10-2003 à 16:15:13  profilanswer
 

n°539402
chrisbk
-
Posté le 14-10-2003 à 16:19:22  profilanswer
 

iS@mi a écrit :


 
Comment ca se fait qu'une fonction inline soit plus rapide ?
 


c'est tout un debat ca :D
 
l'appel de fonction est supprimé (en clair, le code la fonction est recopié par le compilo a l'endroit de l'appel)
 
Cela a un gain interessant quand le coup de l'appel de fonction est superieur au temps de traitement de la fonction (typiquement un accesseur)
 
Par contre si la fonction est trop longue certains pensent que tu noie le cache de code de ton CPU ruinant par la meme ton but (et en plus ton exe devient + gros)

n°539404
LetoII
Le dormeur doit se réveiller
Posté le 14-10-2003 à 16:20:13  profilanswer
 

iS@mi a écrit :


 
Comment ca se fait qu'une fonction inline soit plus rapide ?
 


 
Par ce que le code de la fonction est, en gros, recopié à l'endroit de l'appel ce qui te permet d'économiser sur les mécanismes d'appel de fonctions.
 
Arf [:benou_grilled]


Message édité par LetoII le 14-10-2003 à 16:21:03

---------------
Le Tyran
n°539413
iS@mi
Resistance is futile !
Posté le 14-10-2003 à 16:31:08  profilanswer
 

chrisbk a écrit :


c'est tout un debat ca :D
 
l'appel de fonction est supprimé (en clair, le code la fonction est recopié par le compilo a l'endroit de l'appel)
 
Cela a un gain interessant quand le coup de l'appel de fonction est superieur au temps de traitement de la fonction (typiquement un accesseur)
 
Par contre si la fonction est trop longue certains pensent que tu noie le cache de code de ton CPU ruinant par la meme ton but (et en plus ton exe devient + gros)
 


 
En gros le code de l'inline est directement injecté dans celui de la fonction où il est utilisé, ce qui évite d'aller le chercher et donc de perdre du temps ?
 
Mais si j'utilise un exemple 100 fois ce même inline, il sera recopié 100x dans l'application ?


Message édité par iS@mi le 14-10-2003 à 16:31:42
n°539416
Kristoph
Posté le 14-10-2003 à 16:33:03  profilanswer
 

iS@mi a écrit :


 
En gros le code de l'inline est directement injecté dans celui de la fonction où il est utilisé, ce qui évite d'aller le chercher et donc de perdre du temps ?
 
Mais si j'utilise un exemple 100 fois ce même inline, il sera recopié 100x dans l'application ?


 
Oui.

n°539442
Taz
bisounours-codeur
Posté le 14-10-2003 à 16:54:20  profilanswer
 

chrisbk a écrit :


Cela a un gain interessant quand le coup de l'appel de fonction est superieur au temps de traitement de la fonction (typiquement un accesseur)

significatif par rapport au temps d'execution de la fonction est plus correct.
 
note du modérateur : inline se traduit par "Insertion sur place" ce qui est très explicite (si tant est)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  compilation d'un inline ?

 

Sujets relatifs
Question newb perdu - erreur a la compilation[GCC][ASM] Assembleur inline gcc
[C++] Problèmes à la compilation avec des fonctions amiescombinaison de div inline et block
Compilation JAVA depuis un programme JAVA[java]erreur lors de compilation sous Visual Studio.net
Kylix 3 Open C++ : Problème de compilation, voilà le log[CSS] inline et width sur un div
Erreur de compilation... [RESOLU][VBA-exel]Erreur de compilation Sub / erreur defini par l'application?
Plus de sujets relatifs à : compilation d'un inline ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR