From: Yongwei W. <wuy...@gm...> - 2007-10-26 12:30:26
|
On 26/10/2007, Sisyphus <sis...@op...> wrote: > Hi, > On Win2k, gcc-3.4.5, I find that: > > unsigned long long int x = 0x1000000000000000ULL; > printf("%llx %llu %lld\n", x, x, x); > > outputs (transcribed): > > 0 268435456 0 > > On my Vista64 box, gcc-3.4.5, the same code outputs (copy'n'pasted): > > 1000000000000000 1152921504606846976 1152921504606846976 > > Apparently, on Vista64, the C runtime has been amended to behave in a sane > and reasonable fashion. > > Anyway - how do I get the output I'm after on Win2k ? (From memory, "%I64" > was the replacement for "%lld" ... but, since that doesn't work, we can > conclude that my memory is in about as good a shape as the rest of me.) Use "I64" for "ll", and "I64d", "I64x", etc. work for me. -- Wu Yongwei URL: http://wyw.dcweb.cn/ |