Почему% b производит SIGFPE, когда b равно нулю?

Сегодня я выслеживал исключение с плавающей запятой в некотором коде, который я только что написал. Потребовалось немного времени, чтобы найти, потому что это было на самом деле вызвано принятием целочисленного мода ноль. Очевидно, что делать что-либо с нулем не будет определено, но я подумал, что странно, что ошибка настолько вводит в заблуждение. Что в операторе C ++ по модулю, который использует числа с плавающей запятой для двух целых чисел? (Я использую gcc 4.3.2)

Вот простая программа для демонстрации ошибки.

int main()
{
    int a=3,b=0;
    int c=a%b;
    return 0;
}

Ответы на вопрос(2)

Ваш ответ на вопрос