Je suis en train d'écrire une fonction printf
personnalisée et un uint64_t
semble être passé incorrectement à va_list
:
Point problématique:
printf("Le nombre est %C, et le suivant est %C", 0xff00ffb7, 0xffffffff);
Partie de mon implémentation de printf
qui produit le résultat incorrect:
format++;
uint64_t num = va_arg(parameters, uint64_t);
Lors du débogage avec gdb, la valeur de num
devient 0xffffffffff00ffb7
plutôt que 0xff00ffb7
que j'attends, et pour le prochain %C
num
devient 0. Est-ce un comportement standard que je rate ou est-ce que je fais quelque chose de mal?