Forum: Mikrocontroller und Digitale Elektronik Assert-Befehl nach der Compilierung


von montagskind (Gast)


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?

von Peter II (Gast)


Lesenswert?

montagskind schrieb:
> wo
> soll denn da nun der Unterschied zu einer exception liegen?

C kein keine exception

von Mikro 7. (mikro77)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.