Xref: utzoo comp.sys.amiga.tech:4073 comp.sys.amiga:30414 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!bloom-beacon!athena.mit.edu!rlcarr From: rlcarr@athena.mit.edu (Rich Carreiro) Newsgroups: comp.sys.amiga.tech,comp.sys.amiga Subject: CPR and math libraries Summary: strange inconsistency Keywords: Lattice 5.02, C, CPR, math libs Message-ID: <9699@bloom-beacon.MIT.EDU> Date: 9 Mar 89 10:07:15 GMT Sender: daemon@bloom-beacon.MIT.EDU Reply-To: rlcarr@athena.mit.edu (Rich Carreiro) Followup-To: comp.sys.amiga.tech Organization: Massachusetts Institute of Technology Lines: 73 [followups to .tech] I discovered this problem today. I have also sent this to a BBS [hence the line numbers] and am too lazy to strip out the line numbers. 1: When using CPR on the following code, I get an interesting 2: inconsistency. I compiled it with: 3: lc -v -d2 -Lvma tst.c or 4: lc -v -d2 -ff -Lvfa tst.c 5: 6: The code is: 7: /*** tst.c ***/ 8: #include 9: #include 10: #include 11: 12: void main() 13: { 14: int a,b; 15: float f; 16: double d; 17: 18: f = (float)3.3; 19: d = 3.3; 20: 21: a=sizeof(f); 22: b=sizeof(d); 23: } 24: 25: When I compile and link against lcm.lib, CPR says f is a float, and d is 26: a double. Also, CPR says a is 4 and d is 8. WHen I say that CPR says f 27: is a float and d is a double, I mean that when I do 'wha f', I get: 28: auto at xxxxxxx (4 bytes) 29: float 30: 31: and when I do 'wha d' I get: 32: auto at xxxxxxx (8 bytes) 33: double 34: 35: That all is nice and logical. However, when I compile with 36: lc -v -d2 -ff -Lvfa tst.c, the following happens: 37: A 'wha f' gives: 38: auto at xxxxxxx (8 bytes) 39: double 40: 41: and a 'wha d' gives: 42: auto at xxxxxxx (8 bytes) 43: double 44: 45: Meanwhile, 'd a' says a=4 and 'd b' says b=4. Who's confused, hte 46: compiler or CPR. I discovered this problem when trying to use 47: scanf() with lcmffp.lib. I had something like 48: 49: float f; 50: scanf("%f",&f); 51: and when I looked at f after the scanf(), it was wrong. 52: I tried using %hf and %lf as well, to no avail. 53: 54: Can anyone out there explain this, and can someone give me a definitive 55: answer on when to use %f, %lf, and %hf and with which floating point 56: libs. 57: 58: Thank you, 59: Rich ARPA: rlcarr@athena.mit.edu UUCP: ...!mit-eddie!mit-athena!rlcarr BITNET: rlcarr%athena.mit.edu@MITVMA.mit.edu ******************************************************************************* * Rich Carreiro "Back off man, I'm a scientist." * * rlcarr@athena.mit.edu - Dr. Peter Venkman * *******************************************************************************