任务定义中的非法声明

时间:2018-04-30 14:59:21

标签: concurrency package task ada

我有以下任务规范:

with Ada.Real_Time; use Ada.Real_Time;

package pkg_task is
    task type task_t is
        activationTime : constant Integer := 1;
        period : constant Integer := 2;
        computingTime : constant Integer := 1;
        startingTime : Time;
    end task_t;
end pkg_task;

当我编译时,我在任务规范的所有行中获得了标题中提到的错误,我声明了变量,我不知道问题是什么。

2 个答案:

答案 0 :(得分:3)

任务的接口是其条目,因此您只需在任务规范中声明条目。任务中的任何局部变量都在任务主体的声明部分中声明。

简单地声明没有任何条目的任务:

task Something;

答案 1 :(得分:2)

正如雅各布写的那样,你不能导出任何不是任务入口的东西。 在这种情况下,您的任务非常简单

package pkg_task is
   task type task_t;
end pkg_task;

在正文中,您可以使用变量。

package body pkg_task is

   task body task_t is
      Activation_Time : constant Integer := 1;
      Period          : constant Integer := 2;
      Computing_Time  : constant Integer := 1;
      -- Starting_Time   : Time;
   begin
      null;
   end task_t;
end pkg_task;

无论如何,如果你向我们解释你想要做什么会更容易。