Only U is in my heart!
I will be right here waiting for you.

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

寄存器变量就是用register关键字声明的关键字。根据是否使用优化器,C编译器对寄存器变量采用不同的处理方式。

当使用优化器进行编译时,编译器忽略任何寄存器声明,通过一种能够最有效地使用寄存器的代价算法,把寄存器分配给变量和临时量。

当不使用优化器进行编译时,编译器将使用register关键字的变量分配到寄存器中。

编译器会尽量分配好所声明的寄存器变量。如果编译器运行超出了合适的寄存器,它将通过移动寄存器内容到存储器来释放寄存器。如果定义了太多的寄存器变量,则会限制编译器用来存放临时表达式结果的寄存器数目。这个限制会引起过量的从寄存器到存储器的移动动作。

整型、浮点型和指针类型对象都可以声明为寄存器变量。而其它类型对象不行。

寄存器存储类对参数和局部变量很有用。一般来说,在一个函数中,某些参数会被复制到堆栈的某个地址,在函数体中被引用。一个寄存器参数会被复制到一个寄存器,而不是堆栈。这种做法加速了函数内参数的寻址速度。

赞(0) 打赏
未经允许不得转载:Onlyisu » C55x C语言基本特性之寄存器变量和参数

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏