質問
Ada 2005 でのプラグマの使用法を示す簡単な実例を提供してくれる人はいますか?プラグマが優先順位のプロセスに慣れていることは理解していますが、実際に動作する例に出会ったことがないだけです。
とても有難い !
解決
の検索 comp.lang.ada
~についての最近の議論について priorities
にはいくつかの興味深い例があります。 これです あなたの質問に特に適切だと思われます。
補遺:他の 2 つの例示的なソースは、 Ada 95 の理論的根拠 そして Ada 2005 の理論的根拠
他のヒント
アンエイダプラグマは、エイダのプログラムの動作を調整したり、微調整することができます言語機能です。プラグマの数はエイダ言語標準で定義されているが、コンパイラベンダーは、独自に定義することができます。
プラグマの主題は、ここでリストだ、ちょうどプロセスよりも優先順位を[タスク]はるかカバーチェックアウトする標準およびベンダーが提供するプラグマの
正確に何をプラグマの助けを借りてやろうとしていますか?設定タスクの優先順位?
-- Not compile checked:
with System; use System;
task Prioritized_Task is
pragma Priority(System.Default_Priority + 1);
entry Start;
end Prioritized_Task;
Ada の多くの場合と同様、ここでの最良の答えは次のとおりだと思います。 LRM に相談してください. 。の タスクの優先順位の管理に関するセクション とにかく、言語の標準定義としては、実際には非常に読みやすいです。
以下のこともできることに注意してください。 実行時にタスクの優先順位を設定する プラグマを使用せずに。これはパッケージを利用します Ada.Dynamic_Priorities
. 。これは私が最近よく行うことですが、何らかの奇妙な理由でコンパイル時に必要な優先順位がわかっている場合を除き、それをハードコーディングすることは気にしません。
あなたのような上級ユーザーは、LRM を調べて、すべての言語が提供するものを確認することを強くお勧めします。付録 (文字で始まるセクション) に特に注意してください。付録には、優れた内容のほとんどが文書化されています。あなたの場合、おそらくリアルタイムの付録 (付録 D) に特に興味があるでしょう。
うん、私はこの1つは手順で参照されていない変数については、コンパイラを黙らせ、多くの場合、使用参照してください。
pragma Unreferenced(Variable);