Фигурные скобки должны использоваться, чтобы указать и совпадать со структурой в ненулевой инициализации массивов и структурами
Фигурные скобки должны использоваться, чтобы указать и совпадать со структурой в ненулевой инициализации массивов и структурами.
Использование вложенных фигурных скобок в списках инициализаторов, чтобы совпадать со структурами вложенных объектов в массивах, объединениях и структурах поощряет вас рассматривать порядок инициализации сложных типов данных и делает ваш код более читаемым. Например, использование вложенных фигурных скобок в инициализации ex1
облегчает, чтобы видеть, как вложенные массивы arr1
и arr2
в struct ex1
инициализируются.
struct Example { int num; int arr1[2]; int arr2[3]; }; //.... struct Example ex1 {1, {2, 3}, {4, 5, 6}}; //Compliant
Правило не требует использования вложенных фигурных скобок, если вы обнуляете, инициализируют массив, объединение, или struct с вложенными структурами является верхним уровнем, например:
struct Example ex1 {}; //Compliant
Если вы ненулевой инициализируете массив, объединение или struct, который содержит вложенные структуры и вы не используете вложенные фигурные скобки, чтобы отразить вложенную структуру, Polyspace® отмечает первый элемент первой вложенной структуры в списке инициализаторов. Например, в этом фрагменте кода, Polyspace отмечает номер 2
потому что это соответствует первому элементу вложенной структуры arr1
в struct ex1
.
struct Example { int num; int arr1[2]; int arr2[3]; }; //.... struct Example ex1 {1, 2, 3, 4, 5, 6}; // Non-compliant
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: операторы объявления |
Категория: необходимый, автоматизированный |