-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)
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 - источники |
Пример (Программа автоматического доказательства Кода):
Polyspace Code Prover - Ленг c - источники |
Пример (Сервер Bug Finder):
сервер средства поиска ошибки полипробела - Ленг c - источники |
Пример (Сервер Программы автоматического доказательства Кода):
сервер программы автоматического доказательства полипробела кода - Ленг c - источники |