1

问题:
代码的主要结构是我想要的方式 -

Def main()

decl int i
decl char arr[3]
INI

PTP HOME ...
arr[1]='w()'
arr[2]='e()'
arr[3]='l()'

for i=1 to 3
 arr[i]
endfor

END

def w()
PTP P1 ...
END

def e()
PTP P2 ...
END

def l()
PTP P3 ...
END

现在,如您所见,我想要做的是,将子程序的名称存储在一个数组中,并且基本上在循环中一个一个地调用它们。(我可以一个一个地编写子程序并完全删除循环,但是在调用每个程序之后我必须给出一个命令,并且我正在寻找一种我不必每次都编写该命令的方法,这可以通过使用循环来完成)

问题是我无法弄清楚如何将 Subprgrams 的名称存储在数组中,因为上面的代码给出了语法错误。
如果有完全不同的方式在循环中调用函数,我很高兴听到它。否则,我会很感激这里的帮助。

谢谢 :)

4

2 回答 2

1

或者如果你想在几个地方使用 int :

DEF CallFunc(i : IN)
 DECL INT I
 switch i
  case 1
   w()
  case 2
   e ()
  case 3
   l()
 endswitch
END

DEF w()
 ;MOVE
END

DEF e()
 ;MOVE
END

DEF l()
 ;MOVE
END

并在任何地方调用它:

DEF main ( )

 FOR I = 1 TO 3
 CallFunc(i)
 ENDFOR

END
于 2019-05-11T12:03:06.220 回答
0

你可以在你的 for 循环中实现一个 switch/case 来模拟数组索引。

Def main()

   decl int i
   decl char arr[3]
   INI

   PTP HOME ...

   for i=1 to 3
       switch i
          case 1
             w()
          case 2
             e()
          default
             l()
       endswitch
   endfor

END

def w()
   PTP P1 ...
END

def e()
   PTP P2 ...
END

def l()
   PTP P3 ...
END
于 2019-04-26T15:11:59.633 回答