发布于 2004-11-23 14:48:50
0楼
我做了一个多小时的实验,终于弄懂了!多谢!
原来在于定义形参时本来就是一个指针(比如IN0为Pointer类型),结果在程序里再用到P##IN0,则为指向指针的指针(这一点非常象C语言) 。
比如实参为P#DB1.DBX0.1,即为16#00 01 84 00 00 01,当你再一次用指针指令P##IN0时,即把16#00 01 84 00 00 01做为一个数字,P##IN0则为该数的指针!
所以在用到如下指令后:
比如:L P##IN0
LAR1
L W[AR1,P#0.0] //这时取的是头一个字,即块号=1,DB1
L D[AR1,P#0.0] //这时取的是头两个字,即16#00 01 84 00
L D[AR1,P#2.0] //这时取的是后两个字,即P#DBX0.1=16#84 00 00 01
这是我猜测的过程,请高手指正.
I can do it