直译
首先看其中文意思,辅助理解记忆。
volatile:
adj. [化学] 挥发性的;不稳定的;爆炸性的;反复无常的
n. 挥发物;有翅的动物
explicit:
adj. 明确的;清楚的;直率的;详述的
在c++的含义
1)volatile: 用于告诉编译器不要优化,在运行期再取其值。
程序在进行编译的时候, 编译器会进行一系列的优化.比如, 某个变量被修饰为 const的, 编译器会在寄存器中保存这个变量的值, 但是有时候, 我们取这个变量的地址, 然后强行改变这个变量在内存中的值, 这就造成了结果的不匹配, 而volatile声明 的变量就会告诉编译器, 这个变量随时会改变, 需要每次都从内存中读取, 就是不需要优化, 从而避免了这个问题, 其实, volatile应用更多的场景是多线程对共享资源的访问的时候, 避免编译器的优化, 而造成多线程之间的通信不匹配!
本文深入解析C++中的volatile和explicit关键字。volatile确保编译器不会优化特定变量,适用于多线程环境下共享资源的访问,防止编译器优化导致的线程间通信不匹配。explicit用于构造函数,阻止隐式类型转换,需显式调用转换。掌握这两个关键字能有效提升C++编程技巧。
1391

被折叠的 条评论
为什么被折叠?



