防止编译器优化,每次调用从内存中拿而不是从优化后的缓冲器(寄存器)中拿。
软件修改变量会被编译器察觉,而由硬件或者中断修改或者多线程修改的变量不会被编译器察觉而无法修改缓冲器(寄存器)中的值,从而造成错误。
一个参数既可以是const还可以是volatile吗?
可以,因为const是限制程序员(软件)无法修改该变量值,但是硬件可以修改。
一个指针可以是volatile 吗?
可以,指针也是变量。
防止编译器优化,每次调用从内存中拿而不是从优化后的缓冲器(寄存器)中拿。
软件修改变量会被编译器察觉,而由硬件或者中断修改或者多线程修改的变量不会被编译器察觉而无法修改缓冲器(寄存器)中的值,从而造成错误。
一个参数既可以是const还可以是volatile吗?
可以,因为const是限制程序员(软件)无法修改该变量值,但是硬件可以修改。
一个指针可以是volatile 吗?
可以,指针也是变量。