1
31
setjmp/longjmp是通过在第一次传递时保存寄存器(包括堆栈和代码指针等)并在跳转时恢复它们来实现的。 非“易失性”的自动(也称为“本地”,堆栈分配)变量 也许 在这些情况下,longjmp将把这些寄存器变量恢复为第一次调用setjmp()时的值。 此外,一个特别聪明的编译器可能会避免从另一个变量的状态推断出的变量,并根据需要计算它们。
Volatile显式告诉编译器不要将变量存储在寄存器中。
|
2
16
解释1是正确的。如果解释2是有意的,原文将使用“ 或 |
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |