Существует несколько подходов.
Вы можете написать свой код в соответствии с C99, а затем предоставить системные хаки, когда авторы компиляторов подведут вас.(К сожалению, это довольно часто встречается в C99.)
#include <stdint.h>
#include <inttypes.h>
printf("My value is %10" PRId64 "\n", some_64_bit_expression);
Если одна из ваших целевых систем пренебрегла реализацией <inttypes.h>
или каким-то иным образом извергнула слабость, потому что некоторые функции типа являются необязательными,тогда вам просто нужна системная #define
для PRId64
(или что-то еще) в этой системе.
Другой подход заключается в выборе чего-то, что в настоящее время всегда реализовано как 64-битное и поддерживается printf,а затем снимали.Не идеально, но часто бывает так:
printf("My value is %10lld\n", (long long)some_64_bit_expression);