Fermer2
FarewellLe 25/09/2009 à 10:12
J'aimerais quelques précisions sur cette fonction :
pedrom::tmpnam
char *tmpnam(char *s asm("a0"))
{
  if (!s)
    s = TMPNAME, *s++ = 0;
  do {
    /* Don't check if we do a loop, since Ti can't have 65536 files */
    sprintf(s, "temp%04x", TMPNAME_COUNT++);
  } while (SymFindPtr(s+9,0));
  return s;
}

Comme c'est du C, j'y comprends pas grand chose cry malgré tous mes efforts

Si je lis bien :
- on doit passer à la fonction un pointeur vers un buffer pour recevoir un nom de fichier
- le pointeur est initialisé à TMPNAME (buffer de 10 bytes) à peine arrivé. A quoi sert donc ce qu'on y a mis ?
- Le premier caractère est mis à 0, puis on le passe (s est incrémenté de 1 ?), comme ça on construit en fait une SYM_STR ? C'est bien ça ?

J'aimerais comprendre, parce que je suis perplexe sur ce que renvoie cette fonction.
"return s", ça renvoie un pointeur vers l'octet #1 de TMPNAME, rien à voir avec l'argument qu'on aura passé à la fonction oO ?