There are a couple of approaches.
You could write your code in C99-conforming fashion, and then supply system-specific hacks when the compiler-writers let you down. (Sadly, that's rather common in C99.)
#include <stdint.h>
#include <inttypes.h>
printf("My value is %10" PRId64 "
", some_64_bit_expression);
If one of your target systems has neglected to implement <inttypes.h>
or has in some other way fiendishly slacked off because some of the type features are optional, then you just need a system-specific #define
for PRId64
(or whatever) on that system.
The other approach is to pick something that's currently always implemented as 64-bits and is supported by printf, and then cast. Not perfect but it will often do:
printf("My value is %10lld
", (long long)some_64_bit_expression);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…