关于tc中的“floating point formats not linked" or "floating point not loaded"

来源:互联网 发布:初学者彩妆套装 知乎 编辑:程序博客网 时间:2024/04/30 18:32

转载:

Why   did   my   program   bomb   at   run   time   with   'floating   point   formats   not   linked'   or   'floating   point   not   loaded'?  
   
  --------------------------------------------------------------------------------  
   
  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  

原创粉丝点击