j'ai un doute : comment on fait pour créer une focntin inline ? c'est le compilateur qui detecte automatiquement si c'est une fonction inline ou est-ce que c'est au programmeur de le definir ?
j'ai un doute : comment on fait pour créer une focntin inline ? c'est le compilateur qui detecte automatiquement si c'est une fonction inline ou est-ce que c'est au programmeur de le definir ?
En fait, c'est assez subtil.Envoyé par Emcy
En C90, il n'y a pas de fonction inline.
En C99, on peut définir une fonction inline
Il faut comprendre qu'une déclaration 'inline' est une façon pour le programmeur d'exprimer son intention. Le compilateur fera ce qu'il peut. Certains cas interdisent l'inlining, comme l'utilisation de l'adresse de la fonction, par exemple, ou (je suppose, mais je n'ai pas vérifié,) l'usage de variable internes statiques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 inline double sqr (double x) { return x * x; }
Il est une autre façon de demander l'inlining, y compris en C90, c'est d'utiliser le mot clé static. Là encore, certains compilateurs, en fonction des réglages, pourront 'inliner' la fonction.
Mais il n'y a aucune garantie. C'est toujours 'au mieux'.
Partager