C++中几个关键字
volatile 编译优化时,为 提高存取速度 ,有时会把变量读取到寄存器,方便读取;但有时别的线程改变了变量的值,但寄存器值不变,造成程序读取值不一致,所以 使用volatile从变量内存中读取。 修饰某个变量,表明某个变量的值可能随时被外部改变,因此对这些变量的存取不能缓存到寄存器,每次使用时需要重新读取,从变量的地址中(内存中)读取数据。 volatile的作用 是告知编译器,它修饰的变量随时都可能被改变。因此,编译后的程序每次在使用该变量的值时,都会从 变量的地址中读取 数据,而不是从寄存器中获取。 作用:在进行编译时不优化,在执行的时候不缓存, 每次都需要从内存中读出(保证内存的可见性) 场景:多用于多线程或多CPU编程 static和const static和const static关键字至少有下列几个作用: (1)函数体内static变量的 作用范围为该函数体 ,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (2)在模块内的static全局变量可以被 模块内所用函数 访问,但不能被模块外其它函数访问; (3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的 使用范围被限制在声明它的模块内 ; (4)在类中的static成员变量属于 整个类所拥有 ,对类的所有对象只有一份拷贝; (5