Can anyone explain me where exactly `setjmp()` and `longjmp()` functions can be used practically in embedded programming? I know that these are for error handling. But I'd like to know some use cases.