2011-09-24 3 views
0

La plupart des gens semblent déclarer des fonctions en dehors du bloc de code qui est en les utilisant comme ceci:champ de déclaration de fonction

void doSomething(); 

void doStuff() 
{ 
    doSomething(); 
} 

Je me demande si elle est considérée comme une bonne habitude de le faire à la place comme ceci:

void doStuff() 
{ 
    void doSomething(); 

    doSomething(); 
} 

La deuxième méthode a une portée plus petite et c'est généralement considéré comme un bon style, mais pourquoi ne l'utilise-t-on pas? Y a-t-il des inconvénients?

Répondre

1

Comme la fonction doit être définie dans la portée de l'espace de noms englobant, il ne semble pas y avoir de grand avantage à restreindre la déclaration à la portée de la fonction. Classiquement, une seule déclaration dans un fichier d'en-tête est plus facile à maintenir car, si la définition de la fonction doit changer, seule une déclaration unique doit être ajustée et non une déclaration dans chaque autre fonction où la fonction est utilisée.

1

Si doSomething() n'est utilisé que dans ce fichier c, il doit être déclaré statique.

static void doSomething(); 

Il est un bon pratice de déclarer tous les prototypes de fonctions statiques au début d'un fichier au lieu de au milieu de la ligne de code dans votre exemple. De cette façon, si quelqu'un regarde dans votre code et voit tous les prototy des fonctions statiques, il peut avoir un aperçu rapide de ce qui se passe.

Questions connexes