Why does uint64_t and unsigned long long not work?

It makes no sense why I should have to do that.

Pick up a good C book and read about "type promotion".