2

谁能给我提供简单的工作示例来说明 Ada 2005 中编译指示的使用?我知道编译指示用于优先处理过程,只是我没有遇到工作示例!

非常感激 !

4

4 回答 4

2

Ada pragma 是一种语言功能,允许调整或微调 Ada 程序的行为。Ada 语言标准定义了许多 pragma,但编译器供应商也可以定义自己的。

pragma 的主题不仅仅涵盖进程 [tasking] 优先级,这里有一个标准和供应商提供的 pragma列表供您查看。

您究竟想借助 pragma 做什么?设置任务优先级?

-- Not compile checked:
with System; use System;

task Prioritized_Task is
   pragma Priority(System.Default_Priority + 1);

   entry Start;

end Prioritized_Task;
于 2010-02-25T13:36:02.733 回答
2

与 Ada 的大部分内容一样,我认为这里最好的答案是咨询 LRM无论如何,对于语言标准定义,关于管理任务优先级的部分实际上非常易读。

请注意,您还可以在运行时设置任务的优先级,而无需使用 pragma。这利用了 package Ada.Dynamic_Priorities。这是我这些天通常做的事情,除非出于某种奇怪的原因,在编译时就知道所需的优先级,而且我不介意对其进行硬编码。

我强烈建议像您这样的高级用户浏览 LRM,看看所有语言都为您提供了什么。请特别注意附件(以字母开头的部分),因为这是记录大部分好东西的地方。就您而言,您可能会对实时附件(附件 D)特别感兴趣。

于 2010-02-25T15:25:47.570 回答
1

搜索comp.lang.ada最近的讨论priorities有几个有趣的例子。似乎特别适合您的问题。

附录:另外两个示例性来源是Ada 95的基本原理和Ada 2005的基本原理

于 2010-02-27T16:36:04.003 回答
0

是的,我看到这个经常被用来关闭编译器关于过程中未引用的变量:

pragma Unreferenced(Variable);
于 2011-12-12T22:51:01.863 回答