> > Should I just make the variable type itself uintmax_t and then just skip > the cast altogether? I went with uint64_t because that is what > getnanotime returned. > That is a bit of taste question (or answer) Typically you declare the variables in the type you need, and this is uint64_t. Let's step back a bit: To print e.g a variable of type uint32_t, you use PRIu32 in the format string, like this: fprintf(stderr, "Total %"PRIu32" (delta %"PRIu32"),",.... In theory (it is in the later specs, and it exists on many platforms), there is a PRIu64 as well. We don't seem to use it in Git, probably because uintmax_t is (more) portable and understood by all platforms which support Git. (And beside that, on most platforms uintmax_t is 64 bit). So my suggestion would be to keep uint64_t and cast the variable into uintmax_t whenever it is printed.