Скобки должны использоваться для указания и соответствия структуры в ненулевой инициализации массивов и структур
Скобки должны использоваться для указания и соответствия структуры в ненулевой инициализации массивов и структур.
Использование вложенных скобок в списках инициализаторов для соответствия структурам вложенных объектов в массивах, объединениях и структурах побуждает вас учитывать порядок инициализации типов комплексных данных и делает ваш код более читаемым. Для примера использование вложенных скобок в инициализации ex1
облегчает просмотр вложенных массивов arr1
и arr2
в структурном 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
внутренние структурные ex1
.
struct Example { int num; int arr1[2]; int arr2[3]; }; //.... struct Example ex1 {1, 2, 3, 4, 5, 6}; // Non-compliant
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Деклараторы |
Категория: Необходимый, Автоматизированный |