register
restrict
volitile
啥意思?
reigster 暗示编译器尽可能将变量放在寄存器中,而不是内存中,这样做的好处是速度快,但是由于寄存器个数有限,因此,那些超过个数的修饰符,将被编译器忽略掉,同时,也并不是加了register的就能快,有时候反而会慢,因为专门用途的寄存器被占用了。
volitile 优化 易变的,如果是易变的,时刻要从内存中读取,而不能只读取cache或者是寄存器中的备份,如果声明了volitile那么就要求编译器最好不要做优化,每次都从内存中读取。
这样感觉register和volitile是相反的功能
restrict 反正是如果有了它会实行优化,反之则不能。