![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мастера, дайте пожалуйста совет!
^Sanya © (2002-07-14 16:37:00)[Убедительная просьба вникнуть в суть вопроса]
Следует ли глобально объявлять переменные, используемые локально в различных методах, при чётком контроле доступа к ним(переменным)? Или всё-таки, если мне в трёх процедурах нужно использовать string, желательно локализовать каждую? Я прекрасно понимаю, что можно поступать и так, и так (в одном случае - кода меньше, но опасней(если не следить за переменными) и памяти забивается больше, в другом - наоборот ), но посоветуйте, как это делают обычно?
Anatoly Podgoretsky (2002-07-14 18:20:00) [1]глобальнообъявлять переменные, используемые локальнов различных методах :-)
Юрий Зотов (2002-07-14 17:53:00) [2]> Anatoly Podgoretsky © (14.07.02 17:07)
Указано - ... в различных методах ...
> ^Sanya © (14.07.02 16:37)
Локально лучше. Динамическое выделение памяти - раз. Надежность - два. А для счетчиков циклов for - так даже вне всяких сомнений (компилятор строит более эффективный код).
Anatoly Podgoretsky (2002-07-14 17:07:00) [3]Ты что имешь ввиду под локальностью - область видимости или способ размещения?
Нет никаких обоснованных причин увеличивать область видимости сверх необходимой.
Если область видимости процедура, то ею и должно ограничиваться, если моддуль то соответственно
Про размещение, в эом случае подразумевается размещение не стеке, и ни требует ни на один байт больше, точнее наоборот, сумммарная потребность в памяти меньше, так как память использвется динамически и автоматически.
Насчет кода, как правило для глобальных переменных нужно писать или столько же кода или больше, если требуется контроль и синхронизация доступа. Для локальных это не требуется, по своей природе имеют необходимую защиту