编译器警告 C4746

“<expression>”的可变访问受 /volatile:[iso|ms] 设置的限制;请考虑使用 __iso_volatile_load/store 内部函数。

直接访问可变变量时会发出 C4746。 它旨在帮助开发人员标识受模型当前指定的特定可变模型(可使用/volatile 编译器选项控制)的影响的代码位置。 具体而言,如果要在使用 /volatile:ms 时查找编译器生成的硬件内存屏障,它很有用。

__iso_volatile_load/store 内部函数可用于显式访问可变内存而不会受可变模型的影响。 使用这些内部函数不会触发 C4746。

默认情况下,此警告处于关闭状态。 请参阅 默认情况下处于关闭状态的编译器警告 了解详细信息。