Microsoft KB Archive/37507

From BetaArchive Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Article ID: 37507

Article Last Modified on 9/17/2003



APPLIES TO

  • The C Run-Time (CRT), when used with:
    • Microsoft C Professional Development System 6.0
    • Microsoft C Professional Development System 6.0a
    • Microsoft C Professional Development System 6.0a
    • Microsoft C Professional Development System 6.0
    • Microsoft C Professional Development System 6.0a
    • Microsoft C/C++ Professional Development System 7.0
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.5 Professional Edition
    • Microsoft Visual C++ 5.0 Learning Edition
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 4.0 Professional Edition
    • Microsoft Visual C++ 5.0 Professional Edition
    • Microsoft Visual C++ 6.0 Professional Edition



This article was previously published under Q37507


SYMPTOMS

When an application uses the scanf() function to read a floating-point value from the console into an uninitialized "float" type global variable, an R6002 "floating-point format support not loaded" error occurs. This error also occurs when any formatted input routine is used to read a value.

CAUSE

The compiler does not generate a reference to the __fltused variable that instructs the linker to load the floating-point support module.

RESOLUTION

To work around this problem, initialize the floating-point variable or use the variable in an expression in the routine that contains the scanf() call.

STATUS

This behavior is expected. To minimize the size of the executable file, the compiler loads floating-point support only when it is required.

MORE INFORMATION

When a module uses only one of the formatted input routines and does not also initialize a floating-point variable, the compiler does not load floating-point support.

Remove the comment indication from either or both of the two lines in the sample code below to eliminate the R6002 error.

Sample Code

   /*
    * 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) ;
   }
                


Additional query words: floating point not loaded

Keywords: kbprb KB37507