¿Cómo puedo imprimir (es decir, hacia la salida estándar) un flotador en C sin haber que ser promovido a un doble cuando se pasa a printf?Impresión de un flotador en C evitando al mismo tiempo la promoción de parámetros variadic duplicar
El tema aquí es que las funciones variadic en C promover todas parámetro flotador-doble, que incurre en dos conversiones innecesarias. Por ejemplo, si se activa la -Wdouble-promoción en GCC y compilar
float f = 0.f;
printf("%f", f);
obtendrá
warning: implicit conversion from 'float' to 'double' when passing argument to function
que tienen relativamente poca potencia de procesamiento para jugar con (a 72 MHz ARM Cortex-M3), y estoy definitivamente obstaculizando la salida ASCII de datos de punto flotante. Como la arquitectura carece de una FPU de hardware para empezar, tener que convertir entre precisión simple y doble no ayuda.
¿Hay alguna forma de imprimir un flotador de manera más eficiente en C recta?
Si alguien viene a través de esto, acabé base64'ing mis datos, y se decodifica/formateado/todo bastante impresa en un host también machine.I consideró Boost :: Karma, pero eso habría requerido C++ y había muchas posibilidades de que no me salve ningún tamaño de código. –