三个关键字

register

restrict

volitile

啥意思?


reigster  暗示编译器尽可能将变量放在寄存器中,而不是内存中,这样做的好处是速度快,但是由于寄存器个数有限,因此,那些超过个数的修饰符,将被编译器忽略掉,同时,也并不是加了register的就能快,有时候反而会慢,因为专门用途的寄存器被占用了。

volitile  优化  易变的,如果是易变的,时刻要从内存中读取,而不能只读取cache或者是寄存器中的备份,如果声明了volitile那么就要求编译器最好不要做优化,每次都从内存中读取。

这样感觉register和volitile是相反的功能

restrict  反正是如果有了它会实行优化,反之则不能。

你可能感兴趣的:(三个关键字)