2Fermer4
XimoonLe 18/04/2009 à 13:35
Toi, tu ne sais pas dans quoi tu t'aventures là grin
Le mieux est encore de prendre ses propres habitudes, il n'y a rien qui soit meilleur qu'autre chose au final...
Folco (./1) :
Je me pose pas mal de question quant à la mise en forme du code d'une part, et quant aux choix techniques à faire d'autre part.

Déjà, pour la mise en forme :
Convient-t-il mieux d'écrire :
if (condition){
  <du code>
}

ou
if (condition)
{
  <du code>
}

J'imagine que les années d'habitude ont donné de bonnes raisons de choisir une méthode ou l'autre, mais moi j'ai pas l'habitude. grin

En ce qui me concerne, je trouve la seconde solution plus claire et lisible : j'aime bien pouvoir identifier mes blocs au premier coup d'œil.


Autre question :
Vaut-il mieux déclarer toutes les variables en début de fonction, ou les déclarer quand on va en avoir réellement besoin (par exemple, si une variable donnée n'a d'utilité qu'à un petit endroit donné de la fonction) ?


trifus
Bon, j'imagine que tu dois savoir qu'on ne peut pas déclarer de variable en plein milieu du code, mais seulement en début de bloc ? grin

Si tu parles de trucs du genre "for(int i =0; i<truc; i++)", je trouve ça horrible, et d'un moint de vue maintenance du code c'est du suicide.
95% de mes variables sont déclarées en début de fonction, et ça me permet d'éviter de chercher trois heure qui est déclaré où. Parfois (par exemple sur certains blocs "for") je déclare des variables locales à ces blocs, mais c'est relativement rare.


Encore une autre question, relevant plus d'un choix technique :
Vaut-il mieux avoir des variables globales (que TIGCC fout dans des BSS, et j'aime pas ça), ou mieux vaut-il avoir une structure dans main() les contenant et passer un pointeur en argument aux fonctions qu'on appelle ? J'ai choisi cette solution. Je penche plus pour la seconde solution, ayant l'habitude d'avoir ces variables sur la pile en ASM, et ayant un registre d'adresse global pointant vers ce frame et permettant à toutes les fonctions de voir ces variables.


Personnellement, je préfère n'utiliser aucune variable globale, et en effet passer en paramètre des variables déclarées dans les fonctions de plus haut niveau. Pas forcément une structure énorme contenant tout, ceci dit. Mais un code bien construit doit, à mon sens, limiter ce genre de nécessité.