Ist die Verwendung von -DBL_MAX im Code sicher?

8

Ich möchte extreme -ve-Wert.

%Vor%

Ist es also sicher, -DBL_MAX im Code zu verwenden? Wenn jemand einen besseren Ansatz kennt, bitte hier teilen.

    
EmptyData 25.02.2013, 10:06
quelle

1 Antwort

8

DBL_MAX ist Teil der Standardbibliothek. Als solches ist es nicht besonders unsicher.

Allerdings ist das Vergleichen nicht-integraler Gleitkommawerte für die Gleichheit inhärent unsicher im Sinne von unzuverlässig.

Das liegt daran, dass Fließkomma-Arithmetik mit höherer Genauigkeit als der von Ihnen gewählte Typ ausgeführt werden kann, wobei die Ergebnisse hin und her konvertiert werden und nicht immer so, wie Sie es sich denken.

im Vorbeigehen, ein Makro wie folgt definieren:

%Vor%

... ist unsicher: Sie können leicht Opfer unerwünschter Textsubstitution werden und außerdem ist es ein Schandfleck.

Verwenden Sie stattdessen eine Funktion inline , auch wenn inline keine Optimierung garantiert:

%Vor%

und das gleiche gilt für die Konstante THRESHOLD , es sollte einfach eine Konstante in C ++ sein:

%Vor%     
Cheers and hth. - Alf 25.02.2013, 10:09
quelle

Tags und Links