在调试一个Ada程序时编译器报以下错误:
cannot use function "***" in a procedure call
我望文生义地以为是提示“不能在一个过程调用中调用函数”***“。但是当前的调用者是一个task啊。
从Stack Overflow搜到同样问题(https://stackoverflow.com/questions/14719935/cannot-use-function-in-a-procedure-call-compiler-error)。原因是Ada语言不允许象C语言那样忽略函数调用的返回值。
Stack Overflow的另一个帖子(https://stackoverflow.com/questions/9206769/ignore-ada-function-return-values)提供了Ada忽略函数调用返回值的方法,如下例所示:
declare
dummy : constant return_type := my_function;
pragma Unreferenced (dummy);
begin null; end;