cliffb@cjbsys.bdb.com (cliff bedore) (08/30/90)
In article <13116@hydra.gatech.EDU> gt0178a@prism.gatech.EDU (BURNS,JIM) writes: >in article <1990Aug28.041601.5515@d.cs.okstate.edu>, klarich@d.cs.okstate.edu (KLARICH TERRY JAME) says: >< #include <stdio.h> >< #include <values.h> >< >< struct { >< double min,max; >< } range = {MINDOUBLE,MAXDOUBLE}; >< >< main() >< { >< printf("range.min = %E, range.max = %E\n",range.min,range.max); >< } >< -------------------------------------------------------------------------------- >< This program causes the cc compiler to dump core. I am using Xenix 2.3.2 >< with the lng085 update. > >Just as a point of interest, this compiles and executes fine on HP-UX 7.0, >SunOS 4.0.3, and Ultrix 2.2. However, it gets the compile error 'illegal >initialization' under A/UX 1.1, or the ATT universe on Dynix 2.0v2. > >-- >BURNS,JIM >Georgia Institute of Technology, Box 30178, Atlanta Georgia, 30332 >uucp: ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt0178a >Internet: gt0178a@prism.gatech.edu OK I couldn't take it any more so I started playing. It appears that the value for MINDOUBLE is wrong in values.h. I played around and the program below works e-321 appears to be as small as you can go #include <stdio.h> #include <values.h> struct { double min,max; } range = {4.940656e-321,1.797693e+308,}; /* } range = {MINDOUBLE,MAXDOUBLE}; */ main() { printf("range.min = %E, range.max = %E\n",range.min,range.max); /* printf("range.min = %E, range.max = %E\n",range.min,range.max); */ }