Many computer architectures store memory in "words" of several bytes each. For example, the Intel 32-bit architecture stores words of 32 bits, each of 4 bytes. Memory is addressed at the single byte level, however; therefore an address can be "aligned", meaning it starts at a word boundary, or "unaligned", meaning it doesn't.
On certain architectures certain memory operations may be slower or even completely not allowed on unaligned addresses.
So, if you know your addresses are aligned on the right addresses, you can use _amem2(), for speed. Otherwise, you should use _mem2().
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…