MISRA C:2012 Rule 1.2

Расширения языка не должны использоваться

Описание

Управляйте определением

Расширения языка не должны использоваться.

Объяснение

Если программа использует расширения языка, его мобильность уменьшается. Даже если вы документируете расширения языка, документация не может описать поведение при всех обстоятельствах.

Реализация Polyspace

Средство проверки правила отмечает эти расширения языка, в зависимости от версии стандарта C, используемого в анализе. Смотрите C standard version (-c-version).

  • C90:

    • long long int введите включая константы

    • long double ввод

    • inline ключевое слово

    • _Bool ключевое слово

    • short long int ввод

    • Шестнадцатеричные константы с плавающей точкой

    • Универсальные имена персонажей

    • Обозначенные инициализаторы

    • Локальные описания меток

    • typeof оператор

    • Броски объединению

    • Составные литералы

    • Операторы и объявления в выражениях

    • __func__ предопределенный идентификатор

    • _Pragma предварительная обработка оператора

    • Макросы со списком аргументов переменной

  • C99:

    • short long int ввод

    • Локальные описания меток

    • typeof оператор

    • Броски объединению

    • Операторы и объявления в выражениях

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Проверяйте информацию

Группа: стандарт C среда
Категория: консультация
Категория AGC: консультация
Введенный в R2014b