307Fermer309
SasumeLe 22/04/2009 à 23:13
./306 Le C te permet justement de t'affranchir (un peu, pas autant que les langages de haut niveau) des problèmes chiants comme l'allocation des registres, ou tous les autres trucs liés à l'architecture matérielle sous-jacente (cela dit, comme je l'ai dit précédemment, le fait d'être passé par l'ASM te permet de mieux comprendre certains problèmes que tu peux rencontrer). Donc forcément, ça devient compliqué de vouloir contrôler ce genre de choses en faisant du C.

./307 Il manque le typedef de la première ligne. Initialiser une variable globale en dehors d'une fonction revient à créer une section .data (sauf si ça part dans une section bss), qui ne sera pas réinitialisée si tu laisses ton prog en RAM (en clair il faudra que tu l'archives avant de le lancer une première fois, sinon les valeurs d'initialisation seront perdues si elles sont écrasées durant l'exécution).
Ce n'était pas une mauvaise idée de faire une fonction Initialiser() qui initialisait les données. Sinon, moi ce que je faisais pour éviter toutes les variables globales, c'était simplement de les passer en paramètre partout où c'était nécessaire. Ça voudrait dire, dans le cas présent, utiliser une fonction Initialiser(Datat *dataptr).