__fonctions inline vs normale des fonctions en C

Je suis étudiant macros et a trouvé de nombreuses sources et des questions à propos de la différence entre les macros et les fonctions inline. Mais il n'y a rien qui décrivent de façon concrète, précise et différencie les pros&cons en ligne vs fonctions normales.

Mais si je veux choisir entre le fonctionnement normal et la fonction en ligne?

Je sais que l'utilisation de la fonction inline augmentation de la taille du code. Mais en tant que bien que l'étude de la taille n'est pas le principal problème , l'efficacité est l'objectif. Faire une fonction une fonction inline suggère que les appels à la fonction d'être aussi rapide que possible.(En raison de la pile et des trucs généraux)

Est toujours à l'aide de la fonction inline est mieux ou pas? Si non, alors POURQUOI? Quels sont les avantages de l'utilisation normale des fonctions inline?

Lors de la lecture d'autres questions, j'ai lu que inline n'est qu'une indication pour le compilateur. Compilateur peut l'ignorer. Quand compilateur de les ignorer et de POURQUOI?

Certaines fonctions ne peuvent pas être insérée. Par exemple, les fonctions récursives.
Il n'y a pas de règle d'or. Parfois, il est mieux de l'inclure (pour enregistrer un appel de fonction pile et de manipulations), parfois c'est pas la peine (code de l'augmentation de la taille de trop). Vous ne trouverez pas de La seule Vraie Réponse, il n'existe pas.
fine, que sur les autres. Comme je l'ai utiliser une fonction récursive très moins.
Le compilateur décision de l'associé est le plus souvent fixé à l'aide d'un heuristic.
Juste comme remarque, à l'égard de ce qui doit arriver avec un inline marquée de la fonction qu'il ne va pas créer de liens de conflits lors de son définition se produit dans plusieurs unités de compilation. Vous pouvez le mettre dans un fichier d'en-tête. En ce sens, inline rend possible qu'une fonction est incorporé dans plusieurs unités.

OriginalL'auteur Abhishek Gupta | 2012-04-12