Предположения о main Функция

Программа C/C++, которая компилирует в полный исполняемый файл, содержит main функция. Анализ Программы автоматического доказательства Кода обрабатывает main функция по-другому по сравнению с другими функциями.

main Функция как верхняя часть иерархии вызова

Программа автоматического доказательства кода рассматривает main функционируйте как начальную точку верификации. Если вы не обеспечиваете main функция, например, при проверке библиотеки, верификация генерирует ту. По умолчанию, сгенерированный main вызывает функции, которые не вызваны больше нигде.

Верификация затем проистекает из main функционируйте вперед в функции, вызванные от main и так далее вниз иерархия вызова.

Настраивать время верификации или точность:

main Аргументы функции

main функция может иметь одну из трех форм:

  • Форма без аргументов:

    int main() {}
  • Форма 2D аргумента:

    int main(int argc, char* argv[]) {}
  • Любая другая заданная реализацией форма.

В соответствии с техническими требованиями Стандарта C/C++, верификация делает определенные предположения на main аргументы функции. Если main функция имеет аргументы с типами данных, которые совпадают со второй формой, Программа автоматического доказательства Кода принимает эту форму и вводит соответствующие ограничения для аргументов. В частности:

  • Если первый аргумент main функция является целым числом (или typdef до целого числа), верификация принимает, что аргумент является неотрицательным. Этот аргумент обозначает количество дополнительных аргументов к программе от ее внешней среды.

    Предположение сохраняется даже когда main функция имеет только что один аргумент.

  • Если первый аргумент является целым числом, и второй аргумент является указателем на указатель (или typedef к одному), верификация принимает, что второй аргумент выделяется буфер размера, равного первому аргументу, argc. Каждый элемент буфера, argv[0], argv[1], …, argv[argc-1] также принят, чтобы быть инициализированным указателем. Этот аргумент хранит дополнительные аргументы к программе от ее внешней среды.

Похожие темы