Здравствуйте, vsb, Вы писали:
vsb>Но в С есть требование того, чтобы глобальные переменные были обнулены.
Это не
требование, а
утверждение. Это для программиста, который может рассчитывать, что в стандартной реализации они будут обнулены. Самому же C глубоко фиолетово, что будет в тех переменных.
vsb>Если это требование игнорировать, то это уже не С.
Во-первых, это классическая ситуация из серии "шашечки или ехать".
Если нужно "все как в стандарте", то забудьте про скорость и объем памяти, в C об этом тоже ничего не говорится. Гарантируется лишь правильный
результат исполнения программы в соответствии со стандартом.
Во-вторых, C в микроконтроллере, ядре ОС и подобных местах — это по определению "уже не C".
Что там в argv и argc, что в environ, куда идет результат, возвращаемый main, куда печатает printf, что делают _spawn, _exec и подобные функции стандартной библиотеки?
vsb>это кардинально противоречит философии языка, на мой взгляд.
Вы делаете программы на языке, или таки на его философии?
Чем философия мешает делать программы с любым желаемым поведением?