Pointers Ada任务:任务条目中的指针

Pointers Ada任务:任务条目中的指针,pointers,task,ada,Pointers,Task,Ada,我想用Ada中的一些任务条目创建一个任务类型(例如称为“computer”的任务类型)。我想创建一个任务条目,输入参数类型为“is access all computer”,即指向任务类型的指针。这有可能吗 我试着这样做: task type computer; type computer_ptr is access all computer; task type computer is entry init(a: computer_ptr); end computer; type

我想用Ada中的一些任务条目创建一个任务类型(例如称为“computer”的任务类型)。我想创建一个任务条目,输入参数类型为“is access all computer”,即指向任务类型的指针。这有可能吗

我试着这样做:

task type computer;
type computer_ptr is access all computer;    
task type computer is
  entry init(a: computer_ptr);
end computer;
type computer;
type computer_ptr is access all computer;
task type computer is
   entry init (a: computer_ptr);
end computer;
有人建议这样做。不幸的是,这不起作用:GNAT说“计算机”的声明相互冲突


有人能想出一种方法来实现我想做的事吗?

使用任务型计算机,您声明的任务类型计算机完全没有条目。然后声明另一个同名的任务类型

如果要“向前声明”任务类型(根据访问类型的需要),只需编写
type computer与任何其他类型类似。这是一个不完整的类型,可以通过任务类型声明来完成

因此,您的示例应该如下所示:

task type computer;
type computer_ptr is access all computer;    
task type computer is
  entry init(a: computer_ptr);
end computer;
type computer;
type computer_ptr is access all computer;
task type computer is
   entry init (a: computer_ptr);
end computer;

非常感谢您的快速回答!很好用!