c++ - 逗号运算符和乱序执行

标签 c++ c

优化编译器可以重新安排内存访问,CPU 可以乱序执行指令。

问题是:用逗号运算符分隔的语句能否保证准确的执行顺序?或者唯一的方法是使用内存屏障(这是棘手的和非标准的)?

如果不会,那么逗号分隔语句的执行顺序到底能保证什么?

最佳答案

逗号运算符保证在一个线程中表达式的左侧先于表达式的右侧求值。但是,结果何时存储到内存中与评估顺序完全无关,并且需要某种形式的同步,例如内存障碍。

关于c++ - 逗号运算符和乱序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19328280/

相关文章:

c++ - numeric_limits<double>::digits10 是什么意思

c++ - 创建不同的 v8 上下文,它们是另一个的克隆

c - rand() 的实现

c - 你如何设置 autotools 默认 C++ 编译标志

c++ - 通过 tcp 将数据流存储到大型数组中的最佳方法是什么?

c++ - C++中的复数示例不起作用

c# - 你如何在 C++ 中调用 C# 方法?

c - 在 C 中分配指针的不同方法,使用 & 或 *?

c - uint32_t 64 位对齐?

c++ - 计算重复项并将这些计数器存储在数组 C++ 中