Assert-Befehl nach der Compilierung

Gast #4693047
Lesenswert?

Sorry, wenn es für manche vielleicht lächerlich klingen sollte, aber 
irgendwie verstehe ich es einfach nicht.

Wenn ich einen assert() Aufruf in C schreibe. Wird dieser nun bei 
platzoptimiertem Compile weg optimiert oder nicht? Und wenn nicht, wo 
soll denn da nun der Unterschied zu einer exception liegen?
#4693117
Lesenswert?

montagskind schrieb:
> Sorry, wenn es für manche vielleicht lächerlich klingen sollte, aber

In der Tat. ;-)

> irgendwie verstehe ich es einfach nicht.

> Wenn ich einen assert() Aufruf in C schreibe. Wird dieser nun bei
> platzoptimiertem Compile weg optimiert oder nicht?

Richtig. Er wird "wegoptimiert" oder auch nicht, nach den gleichen 
Regeln wie der Rest des Programms.

Ansonsten, vielleicht als Info: assert() ist ein Makro, dessen 
Einbettung durch NDEBUG steuerbar ist.

> Und wenn nicht, wo
> soll denn da nun der Unterschied zu einer exception liegen?

Deine Frage lautet also: Wo liegt der Unterschied zwischen einem 
assert() Aufruf und einer C++-Exception?

http://man7.org/linux/man-pages/man3/assert.3.html
http://www.cplusplus.com/doc/tutorial/exceptions

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren