Вопрос:

делить на ноль ошибок прерывания "использование переменных с плавающей точкой"

c interrupt divide-by-zero

129 просмотра

1 ответ

1 Репутация автора

Кодирование с C, (dev c ++) я использую:

void h(int x)
{
    printf("error devide by zero");
}

signal(SIGFPE, h);
x = a / 0;
printf("%d", x)

это работает нормально, int a, x; но когда я использую float a, x;сообщение об ошибке: "#INF " кто-то сказал мне, что я могу прервать сборку, другой сказал мне, что я должен прервать BIOS, но никаких решений не дано

Автор: lahcen hacouna Источник Размещён: 23.04.2017 09:18

Ответы (1)


-2 плюса

22713 Репутация автора

Среда с плавающей точкой определяет, генерируются ли исключения для деления на ноль. Если вы явно не включите или не выключите его, то поведение, которое вы получаете, не определено.

Кроме того, вы используете саму функцию h в качестве обработчика сигнала. Когда сигнал повышается, это приводит к бесконечной петле.

Автор: Simon Richter Размещён: 23.04.2017 09:27
Вопросы из категории :
32x32