1.2.64. $Q или $OV или $OVERFLOWCHECKS: Проверка переполнения

На верх  Назад  Вперёд

Директива {$Q+} или {$OV+} (только режим MACPAS) или {$OVERFLOWCHECKS ON} включает проверку целочисленного переполнения. Это означает, что компилятор вставляет код для проверки на переполнение, когда выполняются вычисления с целыми числами. Если случается переполнение, то библиотека времени исполнения генерирует ошибку 215: она печатает сообщение Overflow at xxx и завершает программу с кодом ошибки 215.

ПРИМЕЧАНИЕ

Проверка переполнения выполняется не так, как в Turbo Pascal, потому что все арифметические операции выполняются с 32- или с 64-разрядными значениями. Кроме того, стандартные процедуры Inc и Dec проверяются на переполнение в Free Pascal, в то время как в Turbo Pascal они не проверяются.

Используя переключатель {$Q-} (или {$OV-} в режиме MACPAS), можно отключить генерацию кода проверки переполнения.

Генерация кода проверки переполнения может быть также отключена с помощью опции командной строки -Co (см. Справочник пользователя Free Pascal).

В Delphi проверка переполнения работает только на уровне процедур. В Free Pascal директива {$Q } может применяться на уровне выражений.