En faisant une révision de code pour un collègue aujourd'hui, j'ai vu une chose particulière. Il avait entouré son nouveau code avec des accolades comme ceci:
Constructor::Constructor()
{
existing code
{
New code: do some new fancy stuff here
}
existing code
}
Quel en est le résultat, le cas échéant? Quelle pourrait en être la raison? D'où vient cette habitude?
Éditer:
Sur la base des commentaires et de quelques questions ci-dessous, je pense que je dois en ajouter à la question, même si j'ai déjà marqué une réponse.
L'environnement est constitué de périphériques embarqués. Il y a beaucoup de code C hérité enveloppé dans des vêtements C ++. Il y a beaucoup de développeurs C devenus C ++.
Il n'y a pas de sections critiques dans cette partie du code. Je ne l'ai vu que dans cette partie du code. Il n'y a pas d'allocations de mémoire majeures, juste quelques indicateurs qui sont définis et quelques petits changements.
Le code entouré d'accolades est quelque chose comme:
{
bool isInit;
(void)isStillInInitMode(&isInit);
if (isInit) {
return isInit;
}
}
(Ne vous inquiétez pas du code, tenez-vous-en aux accolades ...;)) Après les accolades, il y a un peu plus de twiddling, de vérification d'état et de signalisation de base.
J'ai parlé au gars et sa motivation était de limiter la portée des variables, de nommer les conflits et d'autres que je ne pouvais pas vraiment saisir.
De mon point de vue, cela semble plutôt étrange et je ne pense pas que les accolades devraient être dans notre code. J'ai vu de bons exemples dans toutes les réponses sur les raisons pour lesquelles on pouvait entourer le code avec des accolades, mais ne devriez-vous pas plutôt séparer le code en méthodes?