该错误通常会在尝试将一个非变量传递给subprogram参数时出现。比如,如果你尝试使用一个常量作为参数,就会出现此错误。
例如:
procedure test(item: in out Integer) is begin -- do something end test;
const item_value : Integer := 10; test(item_value); -- this will cause the error
解决方法是使用变量而不是常量作为参数。如果必须使用常量作为参数,可以将它们作为变量传递。例如:
procedure test(item: in out Integer) is begin -- do something end test;
item_value : constant Integer := 10; item_var : Integer := item_value; test(item_var); -- no error
上一篇:Ada: 重新导出枚举类型的值
下一篇:Ada编程 - 套接字阻塞行为