打印

C55x C语言基本特性之寄存器变量和参数

[复制链接]
1559|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feel123|  楼主 | 2012-6-10 20:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
寄存器变量就是用register关键字声明的关键字。根据是否使用优化器,C编译器对寄存器变量采用不同的处理方式。
当使用优化器进行编译时,编译器忽略任何寄存器声明,通过一种能够最有效地使用寄存器的代价算法,把寄存器分配给变量和临时量。
当不使用优化器进行编译时,编译器将使用register关键字的变量分配到寄存器中。
编译器会尽量分配好所声明的寄存器变量。如果编译器运行超出了合适的寄存器,它将通过移动寄存器内容到存储器来释放寄存器。如果定义了太多的寄存器变量,则会限制编译器用来存放临时表达式结果的寄存器数目。这个限制会引起过量的从寄存器到存储器的移动动作。
整型、浮点型和指针类型对象都可以声明为寄存器变量。而其它类型对象不行。
寄存器存储类对参数和局部变量很有用。一般来说,在一个函数中,某些参数会被复制到堆栈的某个地址,在函数体中被引用。一个寄存器参数会被复制到一个寄存器,而不是堆栈。这种做法加速了函数内参数的寻址速度。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

94

帖子

0

粉丝