Я изучал setjmp/longjmp и обнаружил, что setjmp сохраняет регистры, такие как указатель инструкции, указатель стека и т.д.
Однако я не понимаю, что не могут быть изменены данные в стеке потока между вызовом setjmp и longjmp. В этом случае не будет longjmp работать не так, как ожидалось.
Чтобы было ясно, например, когда longjmp восстанавливает указатель стека, скажем, данные в памяти, которые указатель стека указывает сейчас, не совпадают с тем, когда setjmp. Может ли это случиться? И если это произойдет, разве мы не в беде?
Также под этим выражением подразумевается: "Процедуры longjmp() могут не вызываться после того, как процедура, вызванная подпрограммой setjmp(), возвращается."