优化编译器可以重新安排内存访问,CPU 可以乱序执行指令。
问题是:用逗号运算符分隔的语句能否保证准确的执行顺序?或者唯一的方法是使用内存屏障(这是棘手的和非标准的)?
如果不会,那么逗号分隔语句的执行顺序到底能保证什么?
最佳答案
逗号运算符保证在一个线程中表达式的左侧先于表达式的右侧求值。但是,结果何时存储到内存中与评估顺序完全无关,并且需要某种形式的同步,例如内存障碍。
关于c++ - 逗号运算符和乱序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19328280/