Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2013, 12:41   #11
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
Именно. Просто по стек, я чёт забыл. Только не компилятор их туда пишет, а процедура, которая отвечает за это, в исполняемом коде. Компилятор лишь помещает коды этой процедуры в скомпилированный код.
Я не очень понятно написал, а так вообще запутал бы. Иными словами компилятор не записывает машинный код, который бы обнулял память.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 10.02.2013 в 12:52.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 10.02.2013, 12:58   #12
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

[QUOTE=Базиля;1181095Интересно, почему глобальные по умолчанию нулевые, а в случае локальных компилятор не берет на себя такую ответственность ?[/QUOTE]Потому что так велит стандарт. Для того, чтоб обнулить переменные, будь они глобальные или локальные, нужен код. Для выполнения этого кода требуется время. Глобальные переменные инициализируются только раз, при запуске программы, локальные - каждый раз при вызове функции, т.е. этот код должен будет выполняться очень часто. Когда думали стандарт процессоры были медленными а компиляторы - не очень умными. Это сейчас можно написать int a = 0; a = 123; и компилятор уберет лишнее, а было время, когда компиляторы исправно сначала писали ноль, потом 123.
waleri вне форума Ответить с цитированием
Старый 10.02.2013, 13:47   #13
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Значит подготовить переменную к работе с ней. Создание переменных заключается в двух этапах, которые в пхп выражены через 1, а именно через объявление переменной. То есть Вы информируете компилятор/интерпретатор, что нуждаетесь в переменной. А дальше присваиваете ей какое-то начальное значение (инициализируете), чтобы быть уверенным что там содержится именно то, что вам нужно. Здесь приводилось много числовых примеров, но в контексте пхп они не совсем удачны, так как там отношения к переменным очень вольготно. Лучше за пример брать сложные структуры - экземпляры классов, они практически всегда нуждаются в подготовке после объявления.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 11.02.2013, 02:29   #14
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

waleri
Smitt&Wesson
_PROGRAMM_
Благодарю за подробное описание!

Последний раз редактировалось Базиля; 11.02.2013 в 02:32.
Базиля вне форума Ответить с цитированием
Старый 11.02.2013, 13:36   #15
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
_PROGRAMM_
Интересно, почему глобальные по умолчанию нулевые, а в случае локальных компилятор не берет на себя такую ответственность ?
Элементарно, Ватсон!
Глобальные переменные будут проинициализированы один единственный раз - при запуске программы, а локальные - потребуется инициализировать при каждом вызове подпрограммы.
Запросто может оказаться, что эта ( вы общем случае ненужная) инициализация будет потреблять больше ресурсов, чем весь остальной полезный код.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что такое f. spezzA Паскаль, Turbo Pascal, PascalABC.NET 1 13.06.2011 16:21
Что такое хорошо, а что такое плохо... EL_MoC Microsoft Office Word 6 14.04.2011 18:49
Что такое @? k1r1ch Общие вопросы Delphi 11 11.09.2009 20:15
Что такое SE LOPKOT HTML и CSS 5 31.08.2009 21:50
то такое мастерство в программировании, что такое мастер программист и что он может? Cezar Свободное общение 29 02.06.2007 23:48