The C standard gives us lots of freedom for the %p format for the printf family.
IMO, we should use this freedom to always print pointers like we print hex uintptr_t.
Printing them like uintptr_t is reasonably easy on the users, and gives us a simpler, and smaller printf implementation.