История изменений
Исправление Iron_Bug, (текущая версия) :
в стандарте этого нет. это чисто косяк компилятора. он должен скопилировать код, как есть. то есть, взять и тупо зафигачить весь массив нулями, в цикле. но он, типа, делает вид «умного» и начинает подставлять уже оптимизированные (и так оно и есть) системные функции, чтобы было «более лучше». проблема в том, что такое поведение может сломать компиляцию в редких случаях, когда стандартной либы нет вообще. для этого есть флаг freestanding, но он не работает и не отключает подмену.
но для срабатывания бага должно совпасть остуствие системной либы (обычно это микроконтроллеры или системный софт) и такого вот тупого куска инициализации, который вряд ли кто-то напишет. это сферический баг в вакууме. он существует, но вероятность на него наступить стремится к нулю.
Исходная версия Iron_Bug, :
в стандарте этого нет. это чисто косяк компилятора. он должен скопилировать код, как есть. то есть, взять и тупо зафигачить весь массив нулями, в цикле. но он, типа, делает вид «умного» и начинает подставлять уже оптимизированные (и так оно и есть) системные функции, чтобы было «более лучше». проблема в том, что такое поведение может сломать компиляцию в редких случаях, когда стандартной либы нет вообще. но это должно совпасть остуствие системной либы (обычно это микроконтроллеры или системный софт) и такого вот тупого куска инициализации, который вряд ли кто-то напишет. это сферический баг в вакууме. он существует, но вероятность на него наступить стремится к нулю.