c语言合理变量,如何合理设置C语言变量.pdf

中,而非堆栈段。在这个语句中,用了地址

0lA6和0IA7来存放 1。地址01A6和0lAY

就是变量a的存储空间。若源程序:

inta;

main(){}

则变量a也存在于内存数据段中。

C语言变量 例6:对子函数中带有一个static型变

量的程序进行分析。

曹党生 太原理工大学 voidf(){staticinta;a-l;}

voidmain(){f();}

从而腾出si的空间,让si暂时作为变量a的 对其产生的应用程序反汇编后,可以

通过把 C语言程序转换成汇编语言,并分析 存储空间; j找到调用子函数f()的5行汇编代码:

相应的汇编语 句,直观地获知 了变量的5种 (2)语句movsi,0001完成赋值a 1。 push bp

存储类型的表现形式 ;并探讨 了如何设置变 由于直接使用CPU中的寄存器si代表 mov bp,sp

量的存储类型和数据类型才能得到更优化的 变量a,而不是使用内存空间代表变量a,从 movwordptr0【1A6】,0001

程 爵 而使 CPU对变量a的操作速度远远超过 内 pop bp

存变量的操作速度 。 , ret

变量 ;存储 类型 ;数据类型 例 3:对带有4个register变量的程序 可以看出:调用了函数f()后,通过传

进行分析。 送语句movwordptr 0【1A6】,0001完成

main(){registerinta-1,b=2,c 3, a l的赋值。但在子程序返回 (语句ret表

由于C语言通过编译,转换成机器语 d 4; 示子程序返回)时,地址01A6和01A7并

占后,才能被 CPU执行,所以要掌握好C 对其产生的应用程序反fL编后,可以 没有释放,说明静态变量的生命周期与整

语言,就需要了解 C语言的语句转变成机 找到如下7行有关变量a、b、C、d的汇编 个程序的生命周期相同。

器语言之后的情况。下面通过对变量的存 代码 :

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值