Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Exeption на переполнение int - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нахождение количества введеных элементов http://www.cyberforum.ru/cpp-beginners/thread1307286.html
Помогите составить программу: Ввод до нуля.Нахождение количества введеных элементов.
C++ Класс 1-го уровня класс 2-го уровня(класс-потомок) Построить класс 1-го уровня с указанными в индивидуальном задании полями и методами: - конструктор, - функция, которая определяет “качество” объекта – Q по заданной фор- муле ( - вывод... http://www.cyberforum.ru/cpp-beginners/thread1307273.html
C++ Формирование и вывод на печать упакованной структуры из составляющих
Господа, проблема в том, что не совсем понимаю задание. Объясните что от меня требуется! Задание: •Ввод составляющих частей структуры данных, диапазон допустимых значений при этом выводите в виде...
Программа для посчета частоты появления символа в тексте C++
Подскажите, пожалуйста, что не так с программой. При запуске программы выдает "Введите текст" и не реагирует на клавиатуру #include <iostream> #include <stdio.h> #include <string.h> #include...
C++ Составить блок-схему к готовой программе http://www.cyberforum.ru/cpp-beginners/thread1307254.html
#include <stdafx.h> #include <iostream> #include <stdio.h> using namespace std; int main(){ setlocale(LC_ALL, "Russian"); int const n=1000; int arr; int...
C++ Графический вывод дерева Всем привет! Нужна помощь при выводе троичного дерева на экран в горизонтальном виде. Мой код дерева: #include<iostream> #include<cmath> using namespace std; подробнее

Показать сообщение отдельно
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3912 / 2149 / 549
Регистрация: 18.10.2014
Сообщений: 3,756
21.11.2014, 22:45
Цитата Сообщение от Lynatik001 Посмотреть сообщение
как называется ексепшен который бы поймал эту ошибку?
Никак.

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

Более того, опираясь на вышеприведенные правила, современные компиляторы реализуют оптимизации, основанные на так называемой strict overflow semantics (строгая семантика переполнения). Согласно вышеприведенным правилам, компилятор имеет право полагать, что для знаковых целых типов из b>0 всегда следует a+b>a. Это значит, что компилятор имеет право заменить вот такой "хакерский" цикл

C++
1
2
for (int i = 0; i >= 0; ++i)
  // что-то
на бесконечный цикл

C++
1
2
for (int i = 0; ; ++i)
  // что-то
Другими словами, компиляторы имеют право оптимизировать код в рамках предположения, что целочисленные знаковые типа никогда не переполняются. Это означает, что все переполнения вы должны отлавливать самостоятельно.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru