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
Категория: Консультационные
Категория СМЖЛ: Консультационная
Введенный в R2014b