-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)
.
c90
Анализ использует Стандарт C90 (ISO®/IEC 9899:1990).
c99
Анализ использует Стандарт C99 (ISO/IEC 9899:1999).
c11
Анализ использует Стандарт C11 (ISO/IEC 9899:2011).
Эта опция доступна, только если вы устанавливаете Source code language (-lang)
на C
или 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 |
Пример (средство поиска ошибки):
|
Пример (программа автоматического доказательства кода):
|
Пример (сервер средства поиска ошибки):
|
Пример (сервер программы автоматического доказательства кода):
|