pajofego
2006-07-19, 23:30:02
Hallo miteinander,
ich bin's mal wieder mit meinen nervigen Fragen rund um C/C++ :biggrin:
Ich bin gerade mal wieder dabei open source code bei mir zum laufen zu bringen und bin da auf etwas gestoßen, dass ich in der Form nicht ganz verstehe bzw. nicht ganz nachvollziehen kann.
...
assert(val >= 0.0f);
assert(val <= 1.0f);
// set it if it's out of range
if (val < 0.0f)
val = 0;
if (val > 1.0f)
val = 1;
...
Es geht um o.g. Code. Die Bereichüberprüfung von val liegt hier in doppelter Form vor (asser und if) oder nicht? Das Problem ist, dass wenn ich die assert Abfrage nicht auskommentiere, steigt das Programm frühzeitig aus!
Wozu ist so eine Konstruktion vorgesehen? Kann man die assert Abfrage via Befehl ausschalten - eine Bereichüberprüfung erfolgt ja im nachhinein - und eine assert freie Version compilieren zu können?
Danke,
Gruß
pajofego
ich bin's mal wieder mit meinen nervigen Fragen rund um C/C++ :biggrin:
Ich bin gerade mal wieder dabei open source code bei mir zum laufen zu bringen und bin da auf etwas gestoßen, dass ich in der Form nicht ganz verstehe bzw. nicht ganz nachvollziehen kann.
...
assert(val >= 0.0f);
assert(val <= 1.0f);
// set it if it's out of range
if (val < 0.0f)
val = 0;
if (val > 1.0f)
val = 1;
...
Es geht um o.g. Code. Die Bereichüberprüfung von val liegt hier in doppelter Form vor (asser und if) oder nicht? Das Problem ist, dass wenn ich die assert Abfrage nicht auskommentiere, steigt das Programm frühzeitig aus!
Wozu ist so eine Konstruktion vorgesehen? Kann man die assert Abfrage via Befehl ausschalten - eine Bereichüberprüfung erfolgt ja im nachhinein - und eine assert freie Version compilieren zu können?
Danke,
Gruß
pajofego