Я играю с функцией sprintf в avr-libc 2.0.0 и uint64_t, и кажется, что она не работает должным образом.
Код
uint64_t x = 12ull;
char buffer[30];
int len = sprintf(buffer, "%llu", x);
int buffer_len = strlen(buffer);
возвращает len == 2
(хорошо) и buffer_len == 0
(неправильно !!!).
Один и тот же код отлично работает для uint16_t и uint32_t (а также для подписанной версии).
В чем проблема? Это ошибка в sprintf из avr-libc? (Я тестирую один и тот же код в gcc, а не в avr-gcc, и он работает нормально).
Спасибо.