-
It may be significantly slower to access unaligned memory (as in, several times slower).
-
Not all platforms even support unaligned access – x86 and x64 do, but ia64 (Itanium) does not, for example.
-
A compiler can emulate unaligned access (VC++ does that for pointers declared as
__unaligned
on ia64, for example) – by inserting additional checks to detect the unaligned case, and loading/storing parts of the object that straddle the alignment boundary separately. That is even slower than unaligned access on platforms which natively support it, however.