bonjour je suis débutant en C et je ne comprends pas tous ce programme :
Merci d'avanceCode:void Chaine_convertirEntierEnChaine(char* dest, int valeur, int base) { int digit; /* Allocation d'un tableau temporaire qui contiendra la chaîne résultat. * On la remplira en partant de la fin. * On positionne dont le pointeur ptr sur le dernier élément de ce tableau, * dans lequel on place le zéro de fin de chaîne. * * On alloue 33 octets : si le nombre doit être mis en forme en base 2, il faudra * au plus 32 caractères pour le représenter (1 caractère par bit) * + 1 octet pour le zéro terminal. */ char tmp[33]; char* ptr = &tmp[32]; *ptr = 0; // ICI, Je ne comprends ce qu'il fait /* En base 10, un nombre négatif est noté avec un signe '-', * suivi de la valeur absolue du nombre */ if(base == 10 && valeur < 0) { valeur = -valeur; *dest = '-'; // ICI, Je ne comprends ce qu'il fait dest++; // ICI, Je ne comprends ce qu'il fait } /* La conversion s'effectue par divisions successives. * A chaque tour de boucle, on extrait un nouveau digit du nombre. * La progression se fait du digit le moins significatif au plus significatif. */ do { /* Les digits sont obtenus par divisions successives du nombre à convertir * par la base de conversion */ digit = (unsigned)valeur % base; valeur = (unsigned)valeur / base; /* La chaîne destination se remplit en partant de la fin. * Avant d'insérer un nouveau digit, on recule le pointeur d'une position. */ --ptr; /* Si le digit est compris entre 0 et 9, on insère le code ASCII du caractère correspondant, * sinon, on insère le code ASCII d'une lettre */ if(digit < 10) *ptr = digit + '0'; // ICI, Je ne comprends ce qu'il fait else *ptr = digit - 10 + 'A'; // ICI, Je ne comprends ce qu'il fait /* La conversion se poursuit jusqu'à ce que le nombre à convertir soit nul */ } while(valeur != 0); /* Pour finit, on copie la chaîne temporaire à l'adresse destination */ Chaine_copier(dest, ptr); }
-----