2008-10-31 6 views
0

Qu'entend-on par fonction redondante? Quelle est la différence entre une fonction redondante & une fonction inline?Fonctions redondantes & en ligne

+0

Ramu, j'ai édité quelques-uns de vos messages pour être plus grammaticalement correcte. S'il vous plaît essayez de mettre un peu plus d'effort dans cela, vous obtiendrez de meilleures réponses de cette façon. – swilliams

+0

@swilliams: Il est bon de corriger l'orthographe/grammaire là où cela peut être difficile à comprendre, mais il est également important de reconnaître que l'anglais n'est peut-être pas la langue maternelle de quelqu'un et qu'un «peu plus d'effort» une langue aussi complexe et difficile que l'anglais. – eyelidlessness

+0

@eyelidlessness, compris, mais un «peu plus d'effort» pourrait consister à demander de l'aide à un ami ou un collègue. Je ne voulais pas paraître dur si c'était comme ça. – swilliams

Répondre

2

Une fonction redondante est une fonction qui a potentiellement été remplacée par une autre fonction et ne devrait plus être utilisée. Je suppose que cela peut être considéré de la même manière qu'une fonction obsolète.

Une fonction en ligne est implémentée en C et C++ dans le fichier d'en-tête plutôt que dans le fichier .c ou .cpp. Le compilateur remplacera tous les appels à cette fonction par le corps de la fonction lui-même, plutôt que de s'y connecter via la table des symboles. Cela rendra les binaires compilés plus grands, mais il a l'avantage que la fonction fonctionnera un peu plus vite.

1

Un autre sens de fonction redondante est d'avoir deux fonctions qui font essentiellement la même chose:

function Foo(x) { return x * x/2; } 
function Bar(x) { return Math.sqr(x) * 0.5; } 

ou même contenu dans des emballages différents, etc.
Comme le montre, ils peuvent être légèrement différents dans le comportement (float contre int, etc), donc il faut être prudent lors de leur élagage ...

Questions connexes