Réponse:   L'expansion en ligne duplique le code du corps de la fonction. De façon générale, il faut limiter l'expansion en ligne en tenant compte du rapport entre la taille du code source et celle du code résultant de l'expansion en ligne et éventuellement du gain en rapidité d'exécution.

Pour de petites fonctions auxiliaires, comme ci-dessus, le code résultant de l'expansion est plus petit que le code d'un appel de fonction (qui inclue le code protocolaire de placement des arguments, et de récupération du résultat). On a donc simultanément un gain en espace et en rapidité d'exécution. De tels appels peuvent être systématiquement mis en ligne.

À l'opposé de grosses fonctions ne seront jamais mises en ligne, sauf peut-être si elles ne sont appelées qu'une seule fois, ou si elles sont dans à l'interieurs de boucles critiques les plus internes.

Les fonctions récursives sont un cas particulier pour lesquelles l'expansion en ligne n'est pas possible. (On peut en revanche dérouler la récursion un petit nombre de fois.)