2010-04-21 4 views
1

Je regardais à travers le code de quelqu'un un jour et j'étais ennuyé comment ils ont déclaré toutes leurs fonctions d'abord et puis les a appelés plus tard. Je suppose que je suis habitué aux fonctions générées automatiquement de Visual Studio, qui sont faites après vous les appelez - et je me demandais, de quelle façon préférez-vous? Ou y a-t-il une norme sur ce genre de choses?Les fonctions sont-elles déclarées avant ou après les avoir appelées?

Répondre

4

Je ne suis pas sûr de ce que vous entendez par là. En C et C++, une fonction doit être déclarée avant d'être appelée, sinon le compilateur ne saura pas comment vérifier vos arguments et retourner les valeurs.

+0

Oh, peut-être * c'est * pourquoi. J'ai effectivement remarqué cela après le transfert de C# vers C++. Peut-être que ça aurait dû être une question après tout! Merci! – DMan

+1

Notez également qu'il existe une différence entre "déclaré" et "défini". En C++, ils doivent être "déclarés" en premier, mais vous pouvez le faire avec un prototype de fonction d'une ligne et ensuite mettre le corps de la fonction ci-dessous si vous le souhaitez. Même dans les langages dynamiques, la fonction doit être définie avant d'être appelée (en cours d'exécution). Comme dans Python, vous pouvez mettre la fonction au-dessus ou au-dessous, mais si elle est ci-dessous, et que la fonction est appelée * immédiatement * (avant que l'analyseur n'arrive à la définition), vous obtiendrez une erreur d'exécution. – mpen

1

Tout ce que Visual Studio fait automatiquement peut être considéré comme un standard Microsoft. Pas toujours la meilleure norme, mais une norme de toute façon =)

+0

Parfois je souhaite que vous puissiez survoler le nom de la fonction et voir la fonction entière ou quelque chose. – DMan

+0

@DMan: Uhm ... cela pourrait être une très grande info-bulle. Et c'est à ça que servent les descriptions d'intelli-sens (pourquoi avez-vous besoin de voir le code?). Ctrl + clic fonctionne dans un tas d'IDE ... – mpen

+0

@ Mark- Parfois, je n'utilise pas Visual Studio ou dans le cas de VC++, un pas très bon. – DMan

2

Je ne pense pas que ce soit important car les fonctions sont toutes chargées en mémoire avant le début de l'exécution. C'est surtout une question de style.

Personnellement, je mets des fonctions diverses qui ne font pas partie d'une définition de classe au bas de mon code, donc c'est plus facile à lire.

C'est juste mon $ 0,02 si.

Questions connexes