值加减,别忘可能是个指针运算

在做dsp pci驱动时,有一句:

WRITE_REGISTER_ULONG((PULONG) (pdx->base[TI_OPREGS] + (TI_HSR/4)), TI_DISABLE);

TI_HSR 做了除以4,感觉不解,就把除以4去掉,运行。。。毫无意外的蓝屏了

pdx->base[TI_OPREGS] + (TI_HSR/4)

检测了它的值,发现和 pdx->base[TI_OPREGS]与TI_HSR的值相加结果一样。

感到很疑惑,后来看了pdx->base[TI_OPREGS]它的类型是PULONG,即无符号长整型数指针。

上述代码属于指针运算了,对于PULONG类型,加1,相当于在数值上加四。

 

 

你可能感兴趣的:(指针,PULONG)