PDA

Просмотр полной версии : [Вопрос] static, new



AQuays
15.08.2017, 22:19
Прошу дайте исчерпывающий ответ где лучше юзать static, а где new.
А то я не совсем понял различие в них. Разве что static, как я понял уже остаётся в памяти сервера после объявления

---------------------
разобрался))

Batya_Montes
16.08.2017, 10:14
На эту тему уже есть урок в моём Учебнике (http://pro-pawn.ru/showthread.php?4082).

Ок, обобщу ещё раз.
Локальные переменные:

С помощью ключевого слова new объявляются переменные, которые создаются в стеке и существуют только во время выполнения функции, в которой эти переменные объявлены. Обычно инициализируются нулями (если не указать другого значения).
Через static же объявляются переменные, которые всё время находятся в секции данных. Они не создаются перед и не уничтожаются после выполнения функции. По сути это те же глобальные переменные, но которые доступны только внутри функции, в которой они объявлены. Сохраняют своё значение после предыдущего выполнения функции.

Глобальные переменные:

new - переменные, которые будут видны в пределах текущего исходного файла и подключаемых файлов (если эти файлы подключены после new).
static - переменные, которые видны только в пределах текущего файла. Полезно, если вы пишете какой-нибудь инклуд и хотите, чтобы какая-то переменная была недоступна из мода и могла использоваться только в пределах вашего инклуда.

(c) Daniel_Cortez