寄存器变量使用

寄存器变量使用 c语言中寄存器变量什么意思?

c语言中寄存器变量什么意思?

c语言中寄存器变量什么意思?

C语言中寄存器变量就是靠近寄存器的空间。

一般情况下,人们使用C语言定义寄存器变量要遵循以下步骤。

首先,我们输入寄存器变量关键字【register】。然后我们再输入变量的类型。接下来我们再输入变量名。然后我们就可以i开始i对他进行应用。

c语言中寄存器变量工作原理?

1、寄存器变量

在程序运行时,根据需要到内存中相应的存储单元中调用,如果一个变量在程序中频繁使用,例如循环变量,那么,系统就必须多次访问内存中的该单元,影响程序的执行效率。因此,C语言\\C 语言还定义了一种变量,不是保存在内存上,而是直接存储在CPU中的寄存器中,这种变量称为寄存器变量。

register int i=100

1

1

C编译程序会自动地将寄存器变量变为自动变量

由于受硬件寄存器长度的限制,所以寄存器变量只能是char、int或指针型。寄存器说明符只能用于说明函数中的变量和函数中的形参,因此不允许将外部变量或静态变量说明为#34register#34

register变量使用的是硬件CPU中的寄存器,寄存器变量无地址,所以不能使用取地址运算符#34amp#34求寄存器变量的地址。

2、寄存器变量速度测试

对于VC编译器会自动优化,即使没有声明寄存器变量,VC也会自动优化。

对于GCC编译器就不会自动优化。

#include ltstdio.hgt

#includeltstdlib.hgt

#includelttime.hgt

int main()

{

register int temp, i

//int temp, i

time_t start, end

time(ampstart)//获取当前时间

for (i = 0 i lt= 30000000 i )

for (temp = 0 temp lt= 100 temp )

printf(#34ok\

#34)

time(ampend)

printf(#34\%d\

#34,(unsigned int)(end-start))

return 0

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

gcc编译器来编译,用寄存器变量执行时间为2秒

不用寄存器变量执行时间为6秒