[an error occurred while processing this directive]
Ответ: О чем и речь! :( Я как увидел, то оч-чень удивился - если
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено dxp 27 апреля 2004 г. 10:16
В ответ на: Кстати да. Я лажанулся. Автоинициализация касается только переменных (+) отправлено SM 27 апреля 2004 г. 09:26

уж они в таких, можно сказать фундаментальных, вещах допускают подобные вольности, то что уж ожидать от более глубоких? Хорошо, что хоть документировано.

Про Стандарт - Вам прямо пункт найти или Вы просто сомневаетесь? Если второе, то не сомневайтесь: есть совершенно четкое требование Стандарта, что все объекты с глобальным временем жизни (static storage duration) и с областью видимости (scope) на всю единицу компиляции должны быть проинициализированы до вызова main. Причем сначала производится статическая инициализация (т.е. обычные переменные), где переменные с инцизализатором инициализирутся значением этого инициализатора, а переменные без инициализатора - инициализируются нулем. Затем производится динамическая инициализация - т.е. вызов конструкторов объектов.

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

Автоматических (локальных) переменных все это не касается, т.ч. там при отсутствии инициализатора находится мусор.

Если желаете, могу поискать в Стандарте конкретные пункты. Но можете не сомневаться, этот вопрос несколько лет назад плотно вентилировался, т.ч. тут все вполне однозначно.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru