Which, of course, is the whole point of using uintptr_t (Post #3). It's an unsinged integer type that's guaranteed to be large enough to represent any pointer on the platform in question. You don't have to change types when porting code to a different platform.