Sdílet prostřednictvím


Pomocí setjmp/longjmp

Nepoužívejte setjmp a longjmp v C++ programy; Tyto funkce nepodporují sémantiku jazyka C++ objektu.Také v C++ programy pomocí těchto funkcí může snížit výkon tím, že optimalizace na místní proměnné.Pomocí zpracování výjimek C++ try/catch místo konstrukce.

Pokud je nutné použít setjmp/longjmp v programu C++ interakce mezi těmito funkcemi a zpracování výjimek C++ vyžaduje, aby SETJMP.H nebo SETJMPEX.H.Destruktory pro místní objekty, bude volána během zásobníku unwind Pokud kompilace s /EH.Pokud kompilace s/EHs a jedna funkce volání funkce, která používá nothrow, a pokud, využívá funkce nothrow volání longjmp, destructor unwind pravděpodobně nenastane, v závislosti na optimalizace.

Také, pokud chcete, aby váš kód přenosný, nespoléhejte na správné likvidace objekty založené na snímku při provádění nemístní přejít pomocí volání longjmp.

Viz také

Referenční dokumentace

Míchání (strukturované) C a C++ výjimky