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:
Submit and view feedback for