Daniel Mantione Wrote: >This isn't true: >* Cardinal: is always an unsigned 32-bit integer >* Pointer: can be 32-bit or 64-bit depending on processor >* Integer: is a signed 16-bit or 32-bit integer depending on compiler mode
And you are absolutely correct. I forget this because I have the FPC configuration set to always use the 32 bit sized integer. As for Cardinal being only 32bit - that stinks because it's a major oversight on my part. Is there a data type equivalent to Cardinal for 64-bit? I mean - I tried to use a gambit of "processor size" independent variables for doing "low level" stuff - like pointer math. Cardinal - Unsigned, can use write statements, can convert to and from text - perfect. Is there anyway it could be made 64bit? Or Platform size independent variables could be made besides pointer? Darn...this means code I thought was all nicely converted for 64 bit - is going to be useless. ...sigh... Then what I was thinking was wrong. I hope someday there is a platform size based variable like pointer is for Cardinal and Integer. --- Marc Santhoff Wrote: >Since you're fiddling with low level stuff and I had a problem similar a >while ago: >Do you see a way of calculating the offset using types instead of >variables? Using your example I would like to use something like: >uMyCardinalOffset:=cardinal(rtMyRecord.saMyEmail); Not quite - more like: uMyCardinalOffset:=cardinal(rtMyRecord(nil^).saMyEmail; I'n not sure I answered your question - and it is very clean mark - however, as the above states - I just got correct by Daniel on something that just impeded my ability to take my code to the 64 bit level without some major work. I was mistakingly under the impression that Pointer, Integer, and Cardinal - would grow with the platform size like pointer does. This limits me as to what I can do for fancy pointer operations - as there isn't much in the way of converting a pointer to a platform sized unsigned integer safely on 64bit platform. This is rather upsetting. My fault... but upsetting nonetheless. I do hope I answered your question - I mean, if I understood your original question about getting the offset with types versus variables - I think the syntax I wrote above does what you are asking. Best Regards All, Jason P Sage _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal