Earlier quoted context omitted.
printf("%lld", (int64_t) t); wouldn't build on a system that doesn't have int64_t, so one needs to use long long.
Why cast to `int64_t` here? Just because `time_t` could be `int64_t` under the hood doesn't mean it must be casted to this exact type for string formatting/presentation purposes. And I thought `%lld` actually means `long long`... So, http://ideone.com/SJJFPs seems like a proper approach to me. That said, if compiler supports %lld (an %I64d or alike might be required for older compilers), so a better cross-compiler ap…
So that's why we prefer "long long" rather than "int64_t", which I thought was your original question.