Если первый член вашей структуры имеет скалярный тип, используйте
STRUCTA array[MAX] = {{ 0 }};
Если первым членом вашей структуры окажется другой объект структуры, первый член которого имеет скалярный тип, то вам придется использовать
STRUCTA array[MAX] = {{{ 0 }}};
и так далее. По сути, вы должны открывать новый уровень вложенных {}
каждый раз, когда вы «вводите» другой вложенный агрегат (структуру или массив). Таким образом, в этом случае, поскольку первый член каждого вложенного агрегата также является агрегатом, вам нужно углубиться в {}
.
Все эти дополнительные скобки есть только во избежание предупреждения. Конечно, это просто безобидное предупреждение (в данном конкретном случае). Вы можете использовать простой { 0 }
, и он будет работать.
Вероятно, лучший способ справиться с этим - полностью отключить это предупреждение (правильный ответ в командной строке см. В ответе @ pmg). Кто-то, работающий над GCC, не думал ясно. Я имею в виду, я понимаю ценность этого предупреждения (и оно действительно может быть очень полезным), но нарушение функциональности { 0 }
недопустимо. { 0 }
должен был пройти специальный курс лечения.