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