Если вы хотите использовать спецификатор макроса, я бы порекомендовал одну небольшую настройку. Вместо того, чтобы инкапсулировать весь спецификатор, инкапсулируйте только модификатор:
#ifdef 64_BIT_TIME
#define TT_MOD "ll"
#else
#define TT_MOD ""
#endif
, а затем использовать его так:
printf("current time in seconds is: %" TT_MOD "u", time(0));
Причина в том, что, хотя вы в первую очередь хотите, чтобы секунда в десятичной системе счисления, время от времени вам может понадобиться гекс (или, возможно, вы хотите получить 0). Имея только модификатор, вы можете легко написать:
"%" TT_MOD "x" // in hex
"%08" TT_MOD "d" // left pad with 0's so the number is at least 8 digits