参数 'arg' 不得使用前缀 '@' 传递
不得将带有 @ 前缀的参数传递给不期望有 REF 或 OUT 参数的方法或函数。
这种情况可能发生在以下代码中
FUNCTION Start() AS VOID
LOCAL n AS INT
n := 123
test(@n)
? n
PROCEDURE test(u AS USUAL)
? u
u := 345
如果您真的想将 USUAL 的地址传递给 TEST 函数,那么您必须先将该地址赋值给一个局部变量:
FUNCTION Start() AS VOID
LOCAL n AS INT
LOCAL p as PTR
n := 123
p := @n // 将地址分配给 ptr 类型的局部变量
test(p) // 传递指针
? n
PROCEDURE test(u AS USUAL)
? u
u := 345