Dans une source en C, on a toujours besoin d'un petit pack de variables pour faire quelques calculs, des variables qui ne serviront qu'une dizaine de lignes, et après qu'on utilisera plus.
Alors au lieu de créer au tout début de main() un petit set de variables locales standard, comme handle1, handle2, SymPtr1, Symptr2, etc. qui serviront tout au long du programme comme variable temporaires à différents endroits, ce qui ne rend pas super claire la source, je me suis dis pourquoi ne pas faire à chaque fois que j'ai besoin de variables temporaires un petit bloc avec des variables locales qui n'appartient qu'à ce petit bloc.
cad au milieu du programme :
...
{
HANDLE HandleOfTheList; // les var temporaires
SYM_ENTRY *PrgmSymPtr;
<le petit calcul a effectuer
}
...
Ce qui permet d'avoir des noms de variables temporaires un peu plus parlant.
Mais je me suis demandé comment le compilo se débrouillait pour gérer ça (il utilise un autre pointeur sur la pile des variables ? il utilise la même pile ? si c'est le cas les variables temporaires d'un autre bloc pourront prendre plus tard la même place sur la pile ?)
Et finalement ça revient au même que de créer toutes ces variables au tout début de main() : les variables temporaires des différents blocs sont créées dès le début sur la pile de variable de main(). Ca veut dire que si on crée tout plein de petits bloc ({}) comme ça, toute la pile sera mangée dès le lancement du programme, c'est pas une bonne solution. La seule utilité est que dans 2 blocs différents on peut utiliser le même nom de variable, c'est tout.
Alors comment faites vous pour gérer ce problème, pour obtenir une source lisible ?


J'ai fais ce que je pouvais, relis. Et puis Kevin a très bien compris
Mais si on laisse GCC mettre les variables dans les registres, il n'y a pas ce problème.