The length modifier (the z) is optional, but AFAIK, the type specifier (u) is not. So it should be like this: printf("%zu", sizeof(size_t))
edit:
printf("%llu,%llu\n",a, b);
llu is the conversion specification for a long long unsigned int, not a uint64_t.
Yes, in a 32-bit architecture, uint64_t is probably unsigned long long, whilst in a 64-bit architecture, it may be unsigned long.
--
mats
Compilers can produce warnings - make the compiler programmers happy: Use them!
Please don't PM me for help - and no, I don't do help over instant messengers.