Недавно я работаю со специальной встроенной операционной системой, работающей на архитектуре MIPS. Я мало знаю об этом. Когда я использую функцию PRINTF, увидеть некоторые странные вещи:printf не может печатать float/double правильно на экране
int a = 10;
float b = 3.14;
double c = 3.14;
printf("a is %d\n", a); // I'm sorry I forgot to type the parameters just now
printf("b is %f\n", b); // Error
printf("c is %f\n", c); // Error
Выход:
a is 10
b is 0.000000
a
прав, но b
кажется неправильным, и c
даже не могут быть напечатаны. Функция printf поступает из newlib (библиотека языка C). Будьте осторожны, поплавок/двойные числа могут быть рассчитаны правильно, правильно сохранены в памяти, и они просто не могут быть напечатаны правильно.
Возможно, что-то не так с операционной системой. Мне просто интересно, что может быть причиной. Есть ли кто-нибудь, кто раньше столкнулся с этой проблемой?
Вместо того, чтобы обвинять ОС, как о показе минимальный, полный, компилируемый пример ([SSCCE] (http://sscce.org))? –
Можете ли вы показать фактический код? –
Возможно, передайте эти параметры функции 'printf()'? Еще лучше, [прочитайте документацию] (http://en.cppreference.com/w/c/io/fprintf). – WhozCraig