![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как лучше?
Igor_thief © (2005-01-11 20:46:00)Насколько эфективно делать вот-так:
procedure Test;
var
a ....;
procedure Inside;
begin
...
a := ...
...
end;
begin
...
Inside;
...
end;
Или лучше сделать переменную А глобальной и вынести процедуру Inside (процедур внутри, а также переменных может быть много).
Igor_thief (2005-01-12 16:02:00) [1]Sandman25 © (12.01.05 14:15) [4]
Большой сенкс!
Sandman25 (2005-01-12 14:15:00) [2]Если процедура относится только к другой процедуре и не несет самостоятельного смысла, я ее делаю внутренней.
Если несет, делаю отдельной процедурой с передачей параметров в виде параметра типа record или вообще нетипизированного.
Глобальные переменные не поддаются оптимизации, увеличивают требования к памяти, усложняют понимание и модификацию кода (их описание не находится возле того места, где они используются).
Igor_thief (2005-01-12 12:11:00) [3]Palladin © (11.01.05 21:45) [2]
:)
vecna © (11.01.05 21:27) [1]
Я провтыкал, А используется еще и в основной (Test) процедуре. Да и в примере я указал только переменную А (для простоты), но в реальной ситуации переменных больше.
Palladin (2005-01-11 21:45:00) [4]С глобальной переменной быстрее выполнятся будет :) Особенно это видно на стомиллионной итерации... отставание аж на 2 десятых секунды...
vecna (2005-01-11 21:27:00) [5]Переменная A еще где-нить используется? Нет? Тогда нафик ее делать глобальной. Лучше сделать
procedure Inside(var a...)
и не париться с уровнем видимости =)