Dzisiaj szukałem wyjątku zmiennoprzecinkowego w kodzie, który właśnie napisałem. Trzeba było trochę czasu, aby znaleźć, ponieważ było to spowodowane przez pobranie liczby całkowitej mod zero. Oczywiście zrobienie czegokolwiek mod zero nie zostanie zdefiniowane, ale pomyślałem, że to dziwne, że błąd był tak mylący. Co to jest w ramach operatora modulo C++, który użyłby zmiennoprzecinkowego dla dwóch liczb całkowitych? (Używam gcc 4.3.2)Dlaczego% b wytwarza SIGFPE, gdy b wynosi zero?
Oto prosty program do wykazania błędu.
int main()
{
int a=3,b=0;
int c=a%b;
return 0;
}