luh@r PTR_XOR is a macro. It takes in two values a and b. It type casts a and b to integers and the XOR's them together. It then converts that value back to a pointer of type void*. Macros are nice because they are compact way of generating lots of redundant code, but do not overuse them. Macros are dangerous because they a fully global and not protected by namespaces. Over use of them can make code quite confusing.