setjmp和longimp函数:
goto函数只能在函数内部进行跳转,不能跨函数使用
易失变量:volatile:(嵌入式程序员必须掌握的)volatile最初的意思是表示汽油容易挥发,在c中的作用大概有两点(1)表示变量是易失的,易变的. (2)强制访存操作,防止编译器去优化,告诉编译器每次必须去内存中取值,而不是从寄存器或者缓存.
-
非局部跳转的问题:
- 全局变量、静态变量和volatile(易失变量)
不能恢复到原始值
- 寄存器变量
可以恢复到原始值
- 自动变量的潜在问题
优化编译后可能会恢复到原始值