关于volatile unsigned short *p = (volatile unsigned short *)(base + (offset << 1));的理解
首先(volatile unsigned short *)(base + (offset << 1))中的(base + (offset << 1))是一个16进制数值;通过 (volatile unsigned short *) 强行转换成指针类型 也就是说可以直接通过=对指针进行赋值;此时的(volatile unsigned short *)(base + (offset << 1))就是一个地址值为(base + (offset << 1))指针变量;
volatile unsigned short *p是定义一个指针 此时它接收的值是地址;即指针p 指向 指针 (base + (offset << 1))