Сомнения в языке ада, связанные с процедурами - PullRequest
1 голос
/ 27 мая 2010

Я новичок в Аде, и я наткнулся на фрагмент кода, который показан ниже:

                   procedure Null_Proc is
                   begin
                    null;
                   end;

Теперь, насколько мне известно, процедура в Аде ничего не возвращает. Я сомневаюсь, что делает эта процедура Null_proc? Я имею в виду, что мне не ясно определение процедуры.

Ответы [ 2 ]

4 голосов
/ 27 мая 2010

ничего не делает.

Это может быть полезно, когда процедура должна быть вызвана, но ничего не должно быть сделано; в противном случае это имеет небольшое значение. (Я работаю из памяти; я предполагаю, что Ада разрешает функции или процедуры в качестве параметров для других функций - в терминах C, указателей на функции.)

3 голосов
/ 28 мая 2010

Мне известно, что я писал основные подпрограммы таким образом, когда весь «реальный код» был в with ed-пакетах. Это особенно вероятно, если ваша программа использует задачи, так как основная подпрограмма не может принимать рандеву, как задача, поэтому часто заканчивается тем, что ничего полезного не делается. Вся ваша программа будет оставаться активной до тех пор, пока все задачи не будут выполнены, поэтому основной программе действительно не нужно ничего делать.

Другое возможное использование будет для реализации некоторой подпрограммы по умолчанию для предоставления обратных вызовов.

...