为什么当由常量函数返回时,volatile类型是否可以是常量?

Sha*_*han 3 c++ const function volatile

一个c ++类有一个成员函数,代码如下:

const volatile stats_t& get_stats() const{
        return stats;
    }
Run Code Online (Sandbox Code Playgroud)

将const和volatile一起使用的原因是什么?这个功能到底是什么功能?如果返回类型是const,它是否与使用volatile的目的相矛盾?

Mar*_* A. 9

const 不是相反的 volatile

将某事标记为const"这不会被这段代码修改,它是一个常量值/指针/无论什么"

将某些内容标记为volatile"不缓存此值,可能会突然被外部IO操作,中断或其他内容更改"

它们用于不同的目的.const更像是一个" 代码不修改规则 "而挥发性的" 缓存,重新排序和编译器优化规则 "