Quote: "It's better to return it as an INT_PTR, that way it's 64-bit-compatible."
long long or long long int is a 64-bit pointer. Microsoft also supports _Int64
Quote: "
so that a function can return a pointer as an integer
"
All pointers are integers. char* float* MyStructure* are all the same type. They are all pointers. The type before * tells the compiler how to dereference it and the size of the object pointed to.
Since, you are casting it anyway to a char* you could easily declare it a void*. Note: void* pointers can point to any type, but you have to cast them before you try to dereference them.