正在加载图片...
6.2.3寄存器变量和参数 寄存器变量就是用register:关键字声明的变量。 ●依是否用优化器,C编译器对寄存器变量用不同的处理方式: ◆ 当使用优化器进行编译时,编译器忽略任何寄存器声明,通过一种 最有效使用寄存器的代价算法,把寄存器分配给变量和临时量。 ◆ 不用优化器时,编译器尽量将registerf修饰的变量分配到用来存放 临时表达式结果的寄存器中. ●编译器会尽量分配好所有声明的寄存器变量。 若编译器运行超出了合适的寄存器,它将通过移动寄存器内容到存 储器来释放寄存器。若定义了太多的寄存器变量,则会限制编译器 用来存放临时表达式结果的寄存器数目。这个限制会引起过量的从 寄存器到存储器的移动动作。 标量型(整型、浮点型和指针类型)对象都可声明为寄存 器变量,而像数组等其它类型对象不行。 206.2.3 寄存器变量和参数 ⚫寄存器变量就是用register关键字声明的变量。 ⚫依是否用优化器, C编译器对寄存器变量用不同的处理方式: ◆当使用优化器进行编译时, 编译器忽略任何寄存器声明, 通过一种 最有效使用寄存器的代价算法, 把寄存器分配给变量和临时量。 ◆不用优化器时, 编译器尽量将register修饰的变量分配到用来存放 临时表达式结果的寄存器中. 若编译器运行超出了合适的寄存器, 它将通过移动寄存器内容到存 储器来释放寄存器。若定义了太多的寄存器变量, 则会限制编译器 用来存放临时表达式结果的寄存器数目。这个限制会引起过量的从 寄存器到存储器的移动动作。 20 ⚫ 编译器会尽量分配好所有声明的寄存器变量。 ⚫标量型(整型、浮点型和指针类型)对象都可声明为寄存 器变量,而像数组等其它类型对象不行
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有