С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для LVV
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750

Настройка компилятора VS 2008 на исключение переполнений

30.01.2011, 13:09. Показов 1221. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Например, программа для вычисления факториала последовательности натуральных чисел n.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream> 
#include <iomanip>
using namespace std;
unsigned long long factorial(int); 
int main() 
{
 
    for (int i = 0; i <= 68; i++) 
cout << setw(3) << i << "! = " << factorial(i) << endl; 
    return 0; 
}
// Рекурсивное описание функции факториала 
unsigned long long factorial (int n) 
{ 
if (n <= 1) 
return 1; 
else 
return n * factorial(n - 1); 
}
При запуске VS 2008 на 21 шаге начинает выдавать неверный результат, а после 65 шага вообще выдаёт нули.

Понятно, что это происходит оттого, что результат вычисления не укладывается в пределах unsigned long long.
Но почему сначала пишет всякую чушь, а потом нули? Почему, например не сразу нули, или не всё время "чушь"?

И самое главное, подскажите, кто знает, как от этого избавиться. Нельзя ли как-то так настроить компилятор Visual Studio 2008 (без обработки ошибок исходном коде), чтобы после компиляции вместо "чуши" и нулей при переполнении выдавал оповещение об ошибке.

Если компилятор настроить нельзя, то как "поймать" эту ошибку самому, что где и как прописывать в коде.

Заранее благодарен, всем, кто не поленился дочитать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.01.2011, 13:09
Ответы с готовыми решениями:

При запуске программы ошибка компилятора Visual Studio 2008
При запуске программы компилятор Visual Studio 2008 пишет, что не может поключить некоторые библиотеки using как добавить эти библиотеки ...

Настройка компилятора
Искал подходящий компилятор Objective-C под винду. Скачал и установил Dev C++. Как я понял, должен подойти. Но настроить его, чтоб...

Настройка компилятора
Скажите какие чек боксы надо отключить или включить чтобы программа работала самостоятельно от delphi 2009

1
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
30.01.2011, 14:04
Цитата Сообщение от LVV Посмотреть сообщение
Но почему сначала пишет всякую чушь, а потом нули? Почему, например не сразу нули, или не всё время "чушь"?
undefined behavior, или хрен его знает
Цитата Сообщение от LVV Посмотреть сообщение
И самое главное, подскажите, кто знает, как от этого избавиться.
кроме программного контроля недопущения переполнения нет способов, кроме машинного, определения переполнения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2011, 14:04
Помогаю со студенческими работами здесь

Настройка компилятора
Привет. Подскажите как вернуть все настройки по умолчанию?

настройка компилятора
ребят как настроить компилятор чтобы работать с графикой ? вроде бы нужно чтото прописать в derectories ... помогите плиз (компилятор turbo...

Настройка параметров компилятора
Здравствуйте. В Visual Studio 2008 есть компилятор cl.exe Для него можно выставить параметр /openmp, подключающий openmp Подскажите...

Настройка компилятора в QtCreator 2.6.1
Я скачал Qt5 for Windows (http://releases.qt-project.org/qt5/5.0.0/qt-windows-opensource-5.0.0-msvc2010_32-x86-offline.exe). Инсталлер...

Настройка 64 битного компилятора
Друзья, Создаю приложение которое должен работать с большими массивами с памятью более 4 гб. щас у меня стоит компилятор mingw32. но 32...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru