PRB: Error "Compatibilidad de punto flotante no cargado" scanf()

Síntomas

Cuando una aplicación utiliza la función scanf() para leer un valor de punto flotante de la consola en una variable global del tipo "float" sin inicializar, se produce un error de "soporte de formato de punto flotante no cargado" R6002. Este error también se produce cuando cualquier rutina de entrada con formato se utiliza para leer un valor.

Causa

El compilador no genera una referencia a la variable __fltused que indica al vinculador que cargue el módulo de compatibilidad de punto flotante.

Solución

Para evitar este problema, inicialice la variable de punto flotante o utilice la variable en una expresión en la rutina que contiene la llamada scanf().

Estado

Este es el comportamiento esperado. Para reducir el tamaño del archivo ejecutable, el compilador carga compatibilidad de punto flotante sólo cuando es necesario.

Más información

Cuando un módulo utiliza sólo una de las rutinas de entrada con formato y también no inicializar una variable de punto flotante, el compilador no carga la compatibilidad de punto flotante.

Quite la indicación de comentario de las dos líneas en el código de ejemplo siguiente para eliminar el error R6002 o ambas.

Código de ejemplo

   /*    * Compile options needed: none
*/

#include <stdio.h>
float x ;

main()
{
// Remove the comment from the next line to eliminate the error.
// x = 2.3 ;

scanf ("%f", &x) ;

// Remove the comment from the next line to eliminate the error.
// printf ("%f\n", x) ;
}

Propiedades

Id. de artículo: 37507 - Última revisión: 17/01/2017 - Revisión: 1

Comentarios