ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 апреля
881773 Топик полностью
il-2 (09.11.2018 18:47, просмотров: 161) ответил SciFi на Гугел мне сказал, что не когда "проваливается в этот блок", а когда ход выполнения программы натыкается на объявление переменной. Поэтому для каждой переменной отдельно. Требование объявлять все переменные в шапке блока было снято уже в С99, а в
А вообще за такие формулировки создателей стандарта надо было в асфальт закатать. Зачем такие сложности, и вытекающая из них необходимость в каких-то флагах. Инициализировать все локальные static-переменные вместе с глобальными при запуске программы, и все дела. Тем более что они и есть по сути глобальные, только с ограниченной видимостью. С точки зрения программы разницы нет - проинициализировали переменную сразу или в момент достижения ее программой. Ведь до достижения ее программой она все равно недоступна. Я даже уверен, что компиляторы так и делают (инициализируют сразу), хотя специально не проверял :-). А вот с классами по другому. Тут можно придумать пример, когда разница будет заметна (вызвали конструкторы сразу или в момент достижения их программой). Для static-классов признак инициализации нужен, если хотим следовать букве стандарта. Но я бы закатал в асфальт :-)