On Tue, Oct 12, 2010 at 12:29:32AM +0200, Stephan Boettcher wrote: > Andrew Poelstra <[email protected]> writes: > > > ... To the best of my knowledge, gcc uses a 32-bit long > > even on 64-bit systems, to maintain compatibility with old code. > > This was true last I checked, a year or two ago. > > main(){printf("%lx\n",(long)(-1));} > > yields > > ffffffffffffffff > > with > > gcc (Debian 4.4.4-13) 4.4.5 20100902 (prerelease) > > in aggreement with > > > On a 64 bit systems, pointers are going to be 64 bits -- after all, > > that is why you are going to 64 bits. The C spec says "longs shall be > > big enough to hold a pointer" so that you can cast pointers and longs, > > and can union pointers and longs. >
You're right. Just checked with gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) gcc version 4.3.2 (Debian 4.3.2-1.1) gcc version 4.4.4 20100624 (Red Hat 4.4.4-9) (GCC) Having said that, I think using the <stdint.h> types as John Doty suggested would be the best option. Andrew _______________________________________________ geda-user mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

