﻿# What is the POINTER\_32 macro?

The POINTER\_32 macro is a standard Windows SDK macro usually declared in header files BaseTsd\.h, Ntdef\.h or Winnt\.h\.

```cpp
#ifdef (__AXP64__)
  #define POINTER_32 _ptr32
#else
  #define POINTER_32
#endif
```

This macro is used as an extension of the MSVC compiler to declare 32\-bit pointers in the code that uses both the 32\-bit and 64\-bit data models\. This may be required, for example, when you need to implement interprocess cooperation of a 64\-bit program with a 32\-bit process\. That's why don't replace such pointers with 64\-bit ones when porting a 32\-bit project if you don't know the context\.

## References

1. Discussion at stackoverflow\.com\. [POINTER\_32 \- what is it, and why?](https://stackoverflow.com/questions/3447812/pointer-32-what-is-it-and-why)
1. MSDN Library\. [Common Compiler Errors](https://msdn.microsoft.com/en-us/library/windows/desktop/aa384160(v=vs.85).aspx)