Share via


Microsoft-specific. When you declare a pointer with the __unaligned modifier, the compiler assumes that the pointer addresses data that isn't aligned. So, platform-appropriate code is generated to handle unaligned reads and writes through the pointer.


This modifier describes the alignment of the data addressed by the pointer. It is assumed that the pointer itself is aligned.

The necessity for the __unaligned keyword varies by platform and environment. Failure to mark data appropriately can result in issues ranging from performance penalties to hardware faults. The __unaligned modifier isn't valid for the x86 platform.

For compatibility with previous versions, _unaligned is a synonym for __unaligned unless compiler option /Za (Disable language extensions) is specified.

For more information about alignment, see:

See also