Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

comp.os.msdos.programmer FAQ part 2/5
Section - - Why did my program bomb at run time with 'floating point formats not linked' or 'floating point not loaded'?

( Part1 - Part2 - Part3 - Part4 - Part5 - Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Cities ]


Top Document: comp.os.msdos.programmer FAQ part 2/5
Previous Document: - Will Borland C code and Microsoft C code link together?
Next Document: - How can I change the stack size in Borland's C compilers?
See reader questions & answers on this topic! - Help others by sharing your knowledge
Date: 5 Feb 2002 22:03:03 -0400

 These messages look similar but have very different causes.

 "Floating point not loaded" is Microsoft C's run-time message when the
 code requires a numeric coprocessor but your computer doesn't have one
 installed. If the program is yours, relink it using the xLIBCE or xLIBCA
 library (where x is the memory model).

 "Floating point formats not linked" is a Borland run-time error (Borland
 C or C++, Turbo C or C++). Borland's compilers try to be smart and not
 link in the floating- point (f-p) library unless you need it. Alas, they
 all get the decision wrong. One common case is where you don't call any
 f-p functions, but you have %f or other f-p formats in scanf() or
 printf() calls. The cure is to call an f-p function, or at least force
 one to be present in the link.

 To do that, define this function somewhere in a source file but don't
 call it:

   static void forcefloat(float *p)
   {
     float f = *p;
     forcefloat(&f);
   }

 It doesn't have to be in the module with the main program, as long as
 it's in a module that will be included in the link.

 If you have Borland C++ 3.0, the README file documents a slightly less
 ugly work-around. Insert these statements in your program:

   extern unsigned _floatconvert;
   #pragma extref _floatconvert

User Contributions:

1
Ben in Seattle
Jun 2, 2026 @ 4:16 pm
Another solution is to use a parallel port loopback plug. It makes the PC think there is a printer attached. The benefit of this is it doesn't require anticipating the problem with ANSI.SYS escape sequences nor does it make you wait half an hour for the "Abort, Retry, Ignore?" prompt, as some versions of DOS do.

Comment about this article, ask questions, or add new information about this topic:




Top Document: comp.os.msdos.programmer FAQ part 2/5
Previous Document: - Will Borland C code and Microsoft C code link together?
Next Document: - How can I change the stack size in Borland's C compilers?

Part1 - Part2 - Part3 - Part4 - Part5 - Single Page

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
jeffrey@carlyle.org (Jeffrey Carlyle)





Last Update March 27 2014 @ 02:11 PM