我想知道volatile关键字与register,const和static关键字的不同用途.我不确定有什么影响,所以我想:
register volatile int T=10;
Run Code Online (Sandbox Code Playgroud)
建议编译器将T存储在寄存器中,并且可以从外部某处修改T的值(OS,硬件,另一个线程)
const volatile int T=10;
Run Code Online (Sandbox Code Playgroud)
程序本身不能修改T,但T可以在代码之外的某处修改.
static volatile int T=10;
Run Code Online (Sandbox Code Playgroud)
如果T是类的数据成员,则意味着类的所有对象具有相同的T值,并且可以从外部的某处修改T.如果T是文件中的全局变量,则其他文件(属于项目的一部分)中的源代码无法访问T,但可以从外部的某个位置访问T. 如果T是函数中的局部变量,一旦它被初始化,它将保留在内存中直到程序结束,并且可以从外部的某个地方进行修改.
我的想法是否正确,任何有经验的C++开发人员都可以提供一个示例,其中上述内容可能在实际应用程序中使用,或者它是非常罕见的?