Ada_Ru форум

Обсуждение языка Ада

<<Подавление>> предупреждения и не резервирование места на стеке для неиспользуемой переменной

Оставить новое сообщение

Сообщения

aLTer
<<Подавление>> предупреждения и не резервирование места на стеке для неиспользуемой переменной
2009-09-03 08:49:30

Здравствуйте!

 

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

(предположительно) место на стеке будет выделено.

Можно ли этого как-нибудь избежать?

 

По сообщениям при аналогичной ситуации в языке Си есть специальная конструкция (void), которая ликвидирует предупреждение и место на стеке не будет зарезервировано для неиспользуемой переменной,

например:

int foo(int bar, int baz) {

(void) bar;

-- далее идёт код

}

 

-- Владимир

Подовить предупреждение можно, использовав GNAT-скую (нестандартную) директиву

pragma Unreferenced (bar);

 

Место на стеке выделяет вызывающая подпрограмма, которая не

может знать, используется или нет данный аргумент.

Ичитывая раздельную компиляцию, такую оптимизацию вообще сделать

невозможно.

 

--

Maxim Reznik

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти