pour autosymb oncalc, je veux faire une fonction qui remplacerait fgets, qui aurait pour paramètres la chaîne de caractères et un pointeur dans le fichier. Elle doit avancer ce pointeur donc le modifier.
char *getline(char *s,char *ptr) ne marche pas car ptr n'est pas modifié
char *getline(char *s,char **ptr) marche mais me génère un code qui n'est pas optimisé, si je fais :
char *c;
char dummy[512];
...
getline(dummy,&c);
le compilateur ne peut mettre c dans un registre (par ex a5) car on ne peut avoir de pointeur sur un registre.
l'ideal pour cette fonction serait de la déclarer avec un "register char *ptr" ou similaire pour que si le compilateur décide de mettre a0, il ne rajoute que move.l a5,a0 avant et move.l a0,a5 après l'appel de la fonction mais dans ce cas il considère que le paramètre ne doit pas être modifié et ça ne marche pas.
Comment faire ?