(0LL) is equivalent to ((long long) 0), which is not necessarily equivalent to ((uint64_t) 0).

For instance, uint64_t is actually defined by "typedef long int64_t;" my x86_64 linux machine.  Leaving it as 0LL would cause it to emit a warning about implicit conversion from long long to uint64_t [long].