Warum produziert a% b SIGFPE, wenn b Null ist?

Heute habe ich eine Gleitkomma-Ausnahme in einem Code gefunden, den ich gerade geschrieben hatte. Es dauerte eine Weile, bis es gefunden war, da es tatsächlich durch die Eingabe einer Ganzzahl mod Null verursacht wurde. Offensichtlich wird es nicht definiert, irgendetwas mit Mod Null zu machen, aber ich fand es seltsam, dass der Fehler so irreführend war. Was ist es innerhalb des C ++ - Modulo-Operators, das Gleitkommazahlen für zwei Ganzzahlen verwendet? (Ich benutze gcc 4.3.2)

Hier ist ein einfaches Programm, um den Fehler zu demonstrieren.

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage