Сегодня я отслеживал исключение с плавающей точкой в некотором коде, который только что написал. Потребовалось немного времени, чтобы найти, потому что это было вызвано тем, что принимал целочисленный mod zero. Очевидно, что делать что-либо mod zero не будет определено, но я подумал, что странно, что ошибка была настолько обманчивой. Что это такое в операторе С++ modulo, который использовал бы плавающие точки для двух целых чисел? (Я использую gcc 4.3.2)
Вот простая программа для демонстрации ошибки.
int main()
{
int a=3,b=0;
int c=a%b;
return 0;
}