C standard version (-c-version)

Задайте стандарт языка C, сопровождаемый в исходном коде

Описание

Задайте стандарт языка C, за которым вы следуете в своем исходном коде.

Установите опцию

Пользовательский интерфейс (только десктопные решения): В вашей настройке проекта опция находится на узле Target & Compiler. Смотрите Зависимости для других опций, которые необходимо включить.

Командная строка и файл опций: Используйте опцию -c-version. Смотрите информацию о командной строке.

Почему использование эта опция

Используйте эту опцию так, чтобы Polyspace® мог позволить функции, характерные для стандартной версии C во время компиляции. Например, если вы компилируете с GCC использование флага -ansi или -std=c90, задайте c90 для этой опции. Если вы не уверены в стандарте языка, задаете defined-by-compiler.

Например, предположите, что вы используете булев тип данных _Bool в вашем коде. Этот тип задан в стандартном C99, но неизвестном в предшествующих стандартах, таких как C90. Если компиляция Polyspace следует стандарту C90, вы видите ошибки компиляции.

Некоторые правила MISRA C® отличаются на основе того, используете ли вы C90 или стандарт C99. Например, MISRA C C:2012 Правило 5.2 требует, чтобы идентификаторы в том же осциллографе и пространстве имен должны быть отличными. Если вы используете стандартные, различные идентификаторы C90, которые имеют тот же первый 31 символ, нарушают это правило. Если вы используете стандарт C99, количество символов увеличиваются до 63.

Настройки

Значение по умолчанию: defined-by-compiler

defined-by-compiler

Анализ использует стандарт на основе вашей спецификации для Compiler (-compiler).

См. Стандарт Языка C/C++, Используемый в Анализе Polyspace.

c90

Анализ использует Стандарт C90 (ISO®/IEC 9899:1990).

c99

Анализ использует Стандарт C99 (ISO/IEC 9899:1999).

c11

Анализ использует Стандарт C11 (ISO/IEC 9899:2011).

Зависимости

  • Эта опция доступна, только если вы устанавливаете Source code language (-lang) toc или C-CPP.

  • Если вы создаете проект или файл опций от вашей системы сборки с помощью polyspace-configure команда или polyspaceConfigure функция, значение этой опции автоматически определяется из вашей системы сборки.

    Если система сборки использует различные стандарты для различных файлов, последующий анализ Polyspace может эмулировать вашу систему сборки и использовать различные стандарты для компиляции тех файлов. Если вы открываете такой проект в пользовательском интерфейсе Polyspace, значение опции показывается defined-by-compiler. Однако вместо одного стандарта, Polyspace использует скрытую опцию -options-for-sources сопоставлять различные стандарты с различными файлами.

Информация о командной строке

Параметр: -c-version
Значение: defined-by-compiler | c90 | c99 | c11
Значение по умолчанию: defined-by-compiler
Пример (Bug Finder): Polyspace Bug Finder - Ленг c - источники "file1.c,file2.c" - c-версия c90
Пример (Программа автоматического доказательства Кода): Polyspace Code Prover - Ленг c - источники "file1.c,file2.c" - c-версия c90
Пример (Сервер Bug Finder): сервер средства поиска ошибки полипробела - Ленг c - источники "file1.c,file2.c" - c-версия c90
Пример (Сервер Программы автоматического доказательства Кода): сервер программы автоматического доказательства полипробела кода - Ленг c - источники "file1.c,file2.c" - c-версия c90