-div-round-down)Округлить частные от деления или модуля отрицательных чисел вместо округления вверх
Задайте, округлены ли частные от деления и модуля отрицательных чисел вверх или вниз.
Примечание
a = (a / b) * b + a % b всегда верно.
Пользовательский интерфейс (только для настольных продуктов): В строении проекта опция находится на узле Target & Compiler.
Командная строка и файл опций: Используйте опцию -div-round-down. См. «Информация о командной строке».
Используйте эту опцию, чтобы эмулировать компилятор.
Эта опция применима только для компиляторов, следующих C90 стандарту (ISO/IEC 9899:1990). Стандарт гласит, что «если операнд/или% отрицателен, является ли результат оператора/самым большим целым числом меньше или равным алгебраическому фактору или самым маленьким целым числом, большим или равным фактору, задана реализация, то же самое для знака оператора%». Стандарт позволяет компиляторам выбирать собственную реализацию.
Для компиляторов, следующих C99 стандарту ((ISO/IEC 9899:1999), эта опция не требуется. Стандарт применяет деление с округлением к нулю (раздел 6.5.5).
Если оба операнда / или % отрицательно, результат оператора/является самым большим целым числом, меньшим или равным алгебраическому фактору. Результат % оператор выводится из a % b = a - (a / b) * b.
Пример: assert(-5/3 == -2 && -5%3 == 1); является true.
Если оба операнда / или % отрицательно, результат / оператор является наименьшим целым числом, большим или равным алгебраическому фактору. Результат % оператор выводится из a % b = a - (a / b) * b.
Это поведение также известно как округление к нулю.
Пример: assert(-5/3 == -1 && -5%3 == -2); является true.
Параметр:
-div-round-down |
| По умолчанию: Off |
Пример (Bug Finder):
polyspace-bug-finder -div-round-down |
Пример (Code Prover):
polyspace-code-prover -div-round-down |
Пример (Bug Finder Server): polyspace-bug-finder-server -div-round-down |
Пример (Code Prover Server):
polyspace-code-prover-server -div-round-down |