exponenta event banner

himl_0007: кодовое переключение MATLAB/регистр/другие шаблоны

Идентификатор: Заголовокhiml_0007: кодовый переключатель MATLAB ®/регистр/другие шаблоны
Описание

Для кода MATLAB с switch операторы, включают в себя:

  • Не менее двух case заявления.

  • Один otherwise утверждение, которое, по крайней мере, включает в себя содержательный комментарий.

Примечание

Если имеется только один case и один otherwise оператор, рассмотрите возможность использования if / else заявление.

Объяснение
  • Оборонительное программирование

  • Удобочитаемость

  • Отслеживаемость

Проверки помощника по моделиПроверка операторов переключения в функциональных блоках MATLAB (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Поднабор языка "
    IEC 61508-3, таблица A.4 (3) «Оборонительное программирование »

  • МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения

  • ISO 26262-6, Таблица 1 b) «Использование языковых поднаборов »
    ISO 26262-6, Таблица 1 d) «Использование защитных технологий реализации»

  • EN 50128, Таблица A.4 (11) «Поднабор языка»
    EN 50128, таблица A.3 (1) «Оборонительное программирование»

  • DO-331, Раздел MB.6.3.1.e «Соответствие стандартам»
    DO-331, Раздел MB.6.3.2.e «Соответствие стандартам»
    DO-331, Раздел MB.6.3.3.e «Соответствие стандартам»

  • MISRA C:2012, правило 16.4

См. также
Последнее изменениеR2018b
Примеры

Рекомендуется

  • switch u
        case 1
          y = 3;
        case 3
          y = 1;
        otherwise
          y = 1;
      end
    

  • y = 0;
      switch u
        case 1
          y = 3;
        case 3
          y = 1;
        otherwise
          % handled before switch
      end
    

Не рекомендуется

  •   % no case statements
      switch u
        otherwise
          y = 1;
      end
    

  •   % empty otherwise statement
      switch u
        case 1
          y = 3;
        case 3
          y = 1;
        otherwise
      end
    

  •   % no otherwise statement
      switch u
        case 1
          y = 3;
      end