我有一个存储子程序名称的变量。有没有办法可以通过使用“call [variable]”来调用子程序。
我有几个子程序(示例名称:X_1,X_2,X_3等),并且用户提供数字(1,2,3等),然后代码应该操作与该数字相关联的子程序。
答案 0 :(得分:4)
编译器无法自动执行此操作。您必须准备一个表,该表存储应该选择它们的数字或名称,然后调用正确的子程序。
之后,您可以使用选择案例构造选择正确的函数。
select case (n)
case (1)
call subroutine_1
case (2)
call subroutine_2
end select
或
select case (name)
case ("subroutine_1")
call subroutine_1
case ("subroutine_2")
call subroutine_2
end select
您还可以使用带有函数指针的表。所需的工作量将是相似的。