local在c语言中的作用,C语言中本地变量local variable的作用域与生存期

本文通过示例代码和汇编输出,详细解析了C语言中局部变量(local variable)的作用域和生存期。讨论了编译器优化对局部变量的影响,并指出用汇编解读C语言实现细节在理解某些概念时的助益。
摘要由CSDN通过智能技术生成

回复 7# OwnWaterloo

果然如我所料,如果没有O1这个编译选项,VC++2010是不会压缩空间的。

如果加了O1这个"mini space"优化选项,出来的结果也不是OwnWaterloo提到的,临时变量都没有了,优化得很彻底。

我用的是VC2010,过早的优化果然罪恶!(开个玩笑)

无论如何,还是要谢谢OwnWaterloo的说法:勿以汇编释语言。

其实我也同意这个看法,所以尽量以K&R来作为解读文本。

但是对于一些实现相关的内容,如果还有通过自身的解释或者对标准的注解来做说明,那是非常费劲的。

《狂人C》中对++前后缀方式的说明就是如此,尽管键盘农夫试图把++解释的更为通俗易懂深入浅出,但是我看了还是一头雾水。

而当我看过++代码生成的“无优化VC++2010特别为了注释”版本以后,就恍然大悟,源码之下别无秘密。

而且,如果没有我用汇编展示的这个例子,OwnWaterloo大侠也不会出手解释,从这点来讲,也是抛砖引玉。

当然也可以说我这是一种误读,太细化,系统及平台依赖太强,

但是我感觉用汇编来解读部分C语言实现相关的细节,在现阶段对我而言是有帮助的,那就可以了。

int _tmain(int argc, _TCHAR* argv[])

{

int a = 0;

do

{

char buf[102

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值