TL; DR: Вот как это должно быть.
Если мы предположим, что вы используете библиотеку Кипа Ирвина, то вы можете найти ее исходный код вПодкаталог Lib32
(или Lib16 или Lib64) любого каталога, в который вы установили библиотеку Irvine.
Итак, давайте посмотрим на ReadInt
процедуру в Lib32\Irvine32.asm
.Как вы можете видеть, он просто читает строку, а затем вызывает другую процедуру с именем ParseInteger32
для анализа содержимого этой строки.
ParseInteger32
имеет цикл L5
, где он обрабатывает цифры и, если переполнениеобнаруженный в этом цикле, он перейдет к метке L7
, откуда будет напечатана строка " <32-bit integer overflow>"
, за которой следует возврат каретки и перевод строки.
Ни одна из этих функций не принимает какой-либо параметр, которыйопределяет, должна ли эта строка печататься.Поэтому, если вы хотите избежать печати строки переполнения, вам придется изменить исходный код Irvine и перестроить библиотеку.