静态可变变量与被loop的main函数的顶层变量的生命周期区别

static mut E: Option<i32> = None;

fn main (){

let mut a =2;

// 变量 a 与 变量 E 的生命周期有区别吗?
loop{true;}
}
阅读 1.1k
1 个回答

static 变量是 就算 main 函数结束了,该变量仍然有效,直到上层调用销毁进程,而题中代码的变量 amain 函数中声明定义的变量,生命周期(lifecycle)从声明定义开始到最后一次使用结束。实际上如果使用 release 编译,我们会发现这里的 a 会被优化没了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进