register关键词
因为寄存器比内存有更快的存取速度,在C代码中,经常使用的那些变量可以通过register关键词将其放到寄存器上。
register关键词会提示编译器可以将该变量放在寄存器上,但变量是否被放在寄存器上,这取决于编译器。
通常,编译器会进行一些优化工作,并把该变量放在寄存器中。
要点
1.如果对寄存器变量使用&取地址符,编译器会产生警告或者错误(实际情况取决于使用的编译器),因为该变量是存储在寄存器中而非在内存上,获取寄存器的地址是非法操作。
2.register关键词可用于指针变量(这是很显然的),即将变量的地址存储在寄存器中。
3.register是一个存储类型,在C中不允许对一个变量应用多个存储类型描述符,所以register关键词不能和static关键词一起使用。
4.register关键词只能用于局部变量(即代码块中的变量),不能用于修饰全局变量。