局部变量与栈

局部变量一定保存在栈区吗?
文章:地址
局部变量(除静态变量)一般是保存在栈区的,这不是绝对的,有时编译器会对其进行优化,不为其开辟栈空间;
局部变量不加volatile时,如果当前有空闲的寄存器,编译器会对其进行优化,即直接将值加载到这些寄存器中,在cpu内部完成运算,不需要访问内存和开辟栈空间;
局部变量加volatile时,编译器不会对其进行优化,且永远都是先在栈中保存局部变量的值,再从栈中读出这些数据进行相应运算,最后弹栈释放开辟的栈内存

posted @ 2023-07-26 08:24  我爱茜茜公主  阅读(20)  评论(0)    收藏  举报